home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1995 #2 / Amiga Plus CD - 1995 - No. 2.iso / internet / faq / englisch / fortran < prev    next >
Encoding:
Text File  |  1995-04-11  |  123.3 KB  |  3,320 lines

  1. Last-Modified: 95/3/01
  2.  
  3. Here are some answers to frequently asked questions. The "author", as
  4. is the custom, has appropriated posted responses as seemed apt. I have
  5. tried to leave attributions in, as correctly as possible. To anyone
  6. who has been offended by omission or otherwise, my apologies. I shall
  7. give priority to corrections regarding attribution.
  8.  
  9. No one takes responsibility for any of this text, neither the employer
  10. of the "author", the "author", friends of the "author", pets of the
  11. "author" nor anyone else.
  12.  
  13. Your mileage WILL vary.
  14.  
  15. A good place to look for FAQ's is:
  16.     rtfm.mit.edu, /pub/usenet
  17.  
  18. If you have comments/suggestions/edit proposals please send them to me
  19. (keith.bierman@eng.sun.com). I do not promise to accept 'em. I
  20. encourage others to make better FAQ lists, so I can retire this one.
  21.  
  22.  
  23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  24. summary of changes:
  25.  
  26. Whole FAQ reworked to consolidate information and shorten it. Thanks
  27. to Michael Metcalf for his help in this rewrite.
  28.  
  29. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  30.     Questions:
  31.  
  32. Q0) How should one spell FORTRAN/Fortran?
  33. Q1) Is Fortran 90 a Standard? Where can I get a copy of the Fortran
  34.     90 Standard? How about electronic copies?
  35. Q2) What Fortran 90 compilers/translators are available?
  36. Q3) I have heard of fortran "lints"; what are they, and where can
  37.     I get one?
  38. Q4) "Why do people use FORTRAN? C is so much better"
  39. Q5)  [deleted]
  40. Q6)  Where can I get "foo" (some random package)
  41. Q7)  Where can I get a free (FORTRAN 77) compiler?
  42. Q8)  What is the best (FORTRAN 77) compiler for a PC?
  43. Q9)  How does Fortran 90 relate to FORTRAN '77 and what is Fortran 90?
  44. Q10) My compiler is mis-behaving; who enforces the standard?
  45. Q11) What are good books on Fortran?
  46. Q12) Are there pretty printers for FORTRAN? Flowchart generators?
  47. Q13) Why are there aimless debates?
  48. Q14) How do I call f77 from C (and visa versa)
  49. Q15) What constitutes good FORTRAN style?
  50. Q16) For whatever reasons, I want to translate my Fortran into C.
  51.      What tools are available?
  52. Q17) For whatever reasons, I want to translate my existing C code
  53.      into Fortran. What tools are available?
  54. Q18) What is preprocessing, how can it help? How can it hurt?
  55. Q19) How can I convert an existing FORTRAN 77 program to the free form
  56.      source of Fortran 90?
  57. Q20) Who creates these silly standards anyway?
  58. Q21) How can I read my VAX binary data somewhere else?
  59. Q22) My F77 program compiled ok on a <system1>, but gives me heaps of
  60.      syntax errors on a <system2>. What's wrong?
  61. Q23) My F77 program ran ok on a <system1>, but on a <system2> it just gives
  62.      me strange results. What's wrong?
  63. Q24) Is there a WEB for Fortran (and what is WEB anyway)?
  64. Q25) Where can I find coded BLAS (and what are coded BLAS?)
  65. Q26) How common is DO ... END DO?
  66. Q27) Where can I learn more about the history of Fortran?
  67. Q28) Fortran text editors?
  68. Q29) What are ENCODE and DECODE statements, and how are they translated to
  69.      standard Fortran? How can I convert numbers to character strings
  70.      (and vice-versa)?
  71.  
  72. Q30) Tell me about Parallel Fortran dialects, what are they, etc.
  73. Q31) Where can I find a f90 tutorial or course?
  74. Q32) Where can I get mathematical software?
  75. Q33) What is the best Fortran for...
  76. Q34) [deleted]
  77. Q35) What Interval Arithmetic packages are avaliable?
  78. Q36) f90.faq from Michel Olagnon
  79. Q37) f90 "market" announcement from walt brainerd
  80. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  81.  
  82. Q0)  How should one spell FORTRAN/Fortran?
  83.  
  84.     FORTRAN is generally the preferred spelling for discussions of versions of
  85.     the language prior to the current one ("90"). Fortran is the
  86.     spelling chosen by X3J3 and WG5. In this document a feeble effort
  87.     has been made to capitalize accordingly (e.g. vast existing
  88.     software ... FORTRAN vs. generic Fortran to mean all versions of
  89.     the standard, and specifically the modern dialect, ISO 1539:1991).
  90.  
  91. ~From: walt@fortran.com Walt Brainerd
  92.     There was an effort to "standardize" on spelling of programming
  93.     languages just after F77 became a standard.  The rule: if you say
  94.     the letters, it is all caps (APL); if you pronounce it as a word,
  95.     it is not (Cobol, Fortran, Ada).  See, for example the definitive
  96.     article describing Fortran 77 in the Oct 1978 issue of the Comm.
  97.     of the ACM.  The timing was such that FORTRAN got put on the
  98.     standard itself, though many always after that have referred to
  99.     it as Fortran 77.  Of course, there are those who think it is not
  100.     truly Fortran if not written with all caps.
  101.  
  102. <ed note>
  103.  
  104.     ISO 1539:1991 and its ANSI counterpart X3.198-1992 consistently
  105.     employ the spelling "Fortran" to refer to the language being
  106.     defined. Reference(s) to the older version employ "small caps"
  107.     for the "ORTRAN" characters.
  108.  
  109.  
  110. Q1)  Is it a Standard? Where can I get a copy of the Fortran 90
  111.      Standard? How about electronic copies?
  112.  
  113. Fortran 90 was adopted as an International Standard by ISO in July, 1991.
  114. It was published by them as ISO/IEC 1539:1991, and is obtainable directly
  115. for 185 Swiss francs from
  116.  
  117.           ISO Publications
  118.           1 rue de Varembe
  119.           Case postale 56
  120.           CH-1211 Geneva 20
  121.           Switzerland
  122.           Fax. + 41 22 734 10 79
  123.  
  124. or from:
  125.  
  126. American National Standards Institute
  127. Attn: Customer Service
  128. 11 West 42nd Street
  129. New York, NY 10036
  130. Phone: (212)642-4900 8:45-4:45 (EST)
  131. Fax: (212)302-1286
  132.  
  133.     BSI
  134.     2 Park Street
  135.     London W1A 2BS
  136.  
  137.     DIN
  138.     Burggrafenstrasse 6
  139.     Postfach 1107
  140.     D-1000 Berlin 30
  141.  
  142.     AFNOR
  143.     Tour Europe
  144.     Cedex 7
  145.     92049 Paris La Defence
  146.  
  147.    SCC
  148.    1200-45 O'Connor
  149.    Ottawa
  150.    Ontario  K1P 6N7
  151.  
  152.  
  153. You can obtain copies for $225 through:
  154.     Global Engineering Documents
  155.     2805 McGaw Ave.
  156.     Irvine, CA. 92714
  157.     (714) 261-1455
  158.     (800) 854-7179
  159.  
  160.  
  161. In accordance with an official agreement with
  162. the International Standards Organization, Unicomp
  163. is now able to distribute electronic versions of
  164. the Fortran 90 standard: "ISO/IEC 1539 : 1991,
  165. Information technology--Programming languages--Fortran".
  166.  
  167. The money received from this effort will go partly to
  168. fund ISO activities and partly to recover the costs
  169. incurred by Unicomp in preparing and typesetting the
  170. standard document.  The prices are set by ISO.
  171.  
  172. The document can be obtained in three versions:
  173.  
  174. 1.  An ASCII version suitable for viewing on a
  175.     computer terminal using any kind of editor.
  176.     Cost: USD 125.
  177.  
  178. 2.  A PostScript version with a license allowing
  179.     the purchaser to print n paper copies.
  180.     Cost: USD 125 + 10n.
  181.  
  182. 3.  Complete source in ditroff with macros and
  183.     software to extract and create the annexes.
  184.     The source constitutes a fairly high level
  185.     marked-up document; for example, each program
  186.     beginning and ending is marked and there
  187.     are few low-level typographic commands such
  188.     as size and font changes.  Cost USD 1000.
  189.  
  190. I am quite enthused especially about version (2).
  191. If you want to have 10 copies for your organization,
  192. and it costs $10 to make a printed copy, then the
  193. cost to make the 10 copies would be $125 + $200,
  194. or just $32.50 per copy, which is a substantial
  195. savings over purchasing paper copies.
  196.  
  197. Versions (1) and (3) will be accompanied by a
  198. license restricting use to one CPU and prohibiting
  199. copying, except for backup purposes, etc.  The
  200. version (2) license will prohibit distributing
  201. any of the printed copies outside of the purchasing
  202. organization.
  203.  
  204. If you have special requirements, such as wanting
  205. to distribute a copy with each version of your compiler
  206. or using the source as a part of your documentation,
  207. we can make special arrangements, subject to the
  208. approval of the ISO.  Please advise me of your
  209. requirements and we can work up a proposal together.
  210.  
  211. ISO and Unicomp think this will provide the oft requested access to
  212. the standard in electronic form. This is the first time this is being
  213. tried, so we hope that organizations will be careful to observe the
  214. rules and encourage the continued availability of this and other
  215. standards in electronic form.
  216.  
  217. Payment can be made by Visa or MasterCard, or with
  218. a check on a US Bank in US funds.  We <unicomp> will accept
  219. a purchase order only if the amount is $500 or more.
  220.  
  221. Walter S. Brainerd; Unicomp; phone: 505-275-0800.
  222.  email: Walt Brainerd <walt@fortran.com>
  223.  
  224. ;;; Additional note. X3J3 working papers are often available via ftp.
  225.              ftp.ncsa.uiuc.edu, directory x3j3.
  226.  
  227.  
  228. Q2) What Fortran 90 compilers/translators are available?
  229.  
  230. Apogee's compiler for SPARC architectures (info@apogee.com). Used on
  231. the Meiko CS-2HA. 
  232.  
  233. Cray Research has a  native compiler that is being
  234. marketed by them and Visual Numerics for workstations, starting with
  235. Suns (solaris 2.3+) (craysoft@cray.com). Absoft will market a PC
  236. version (486, Pentium and Macintosh PowerPC) (fortran@absoft.com).
  237.  
  238. DEC has been shipping a native compiler, including HPF, from June 1994.
  239. It is for OSF/1 AXP, with OpenVMS AXP and probably Windows NT AXP
  240. following. It has no plans for VAX systems.
  241.  
  242. Native compilers for Sun, RS/6000, SGI, MIPS and, soon, x86
  243. are available from EPC (info@epc.com or support@epc.ed.ac.uk).
  244.  
  245. Fujitsu is marketing a native Fortran 90 Workbench for Solaris 1.1
  246. and 2.x. Contact Unicomp (walt@fortran.com) or Fujitsu (info@ossi.com).
  247.  
  248. HP has stated its intention to enhance its Fortran compiler progessively
  249. to include all f90 features.
  250.  
  251. IBM has been shipping its optimizing, native compiler for the RS/6000,
  252. xlf Version 3, as of 31 December, 1993.
  253.  
  254. Lahey has been shipping a native LF90 compiler for DOS since 29 August,
  255. 1994 (sales@lahey.com). It is particularly well optimized on the Pentium.
  256.  
  257. Microsoft is working on a compiler, release date unknown, for
  258. Windows NT 3.5 and Windows 95 (Chicago) (fortran@microsoft.com).
  259.  
  260. Microway NDP Fortran 90 for 386/486, Pentium and 860 is available
  261. (tel. (508) 746-7341).
  262.  
  263. A compiler is available for most unix platforms, VMS and PCs (including
  264. Linux) from NAG (infodesk@nag.com or infodesk@nag.co.uk). This was
  265. the first f90 compiler, released in 1991. The current version is 2.1.
  266.  
  267. NA Software supplies Fortran 90 Plus on 386/486, SPARC and T800
  268. and T9000 transputers (marketing@nasoftwr.demon.co.uk). They also
  269. supply a F77 to f90 convertor, LOFT90, and HPF.
  270.  
  271. VAST/f90 from PSR (info@psrv.com) is a complete f90 compiler, including
  272. a vectorizer, for unix, VMS and Convex. PSR also supplies VAST/77to90 to
  273. convert FORTRAN 77 programs into Fortran 90 syntax.
  274.  
  275. A compiler from ParaSoft (f90-info@parasoft.com) is available.
  276.  
  277. PGI has released a subset Fortran 90/HPF compiler, in particular for SGI
  278. (sales@pgroup.com).
  279.  
  280. A PC version of the NAG compiler is also available from Salford Software
  281. (ppatel@cix.compulink.co.uk). A Windows NT version is planned.
  282.  
  283. SofTech has a licence to sell its own versions of DEC's HPF/f90 compiler.
  284.  
  285. Stern Computing Systems offers CF90, a Cray-compatible compiler for
  286. use on DEC OSF/1 platforms (pipeline@acri.fr).
  287.  
  288. Sun is due to release an f90 compiler based on Cray's CF90 in the
  289. second quarter of 1995, initially for Solaris 2.3.
  290.  
  291. Other useful tools, like FORGE90 from APR (forge@netcom.com), are
  292. available. A source form convertor, convert.f90, is obtainable by ftp
  293. from jkr.cc.rl.ac.uk in the directory /pub/MandR.
  294.  
  295. Both NAG and IMSL (now Visual Numerics, mktg@houston.vni.com) are
  296. beginning to offer f90 versions of their maths libraries that take
  297. full advantage of the language's library building capabilities.
  298.  
  299.  
  300. Q3) I have heard of fortran "lints" what are they, and where can
  301.     I get one?
  302.  
  303.    Fortran compilers are not required (and most do not) to protect
  304.    users from themselves, that is to say
  305.  
  306.      call sub(1)
  307.      ...
  308.      subroutine sub(i)
  309.      i=i+10
  310.      return
  311.      end
  312.  
  313.    Is non-standard complying but the compiler need not tell you about
  314.    it. Arguably worse, the compiler can produce any result it deems
  315.    fit, up to and including the start of world war III (assuming the
  316.    right optional hardware has been installed).
  317.  
  318.    Fortran lint programs focus on searching out programming
  319.    errors (or likely errors) and alerting the user.
  320.  
  321.    There are a wide variety of commercial and pd products. A partial
  322.    list follows:
  323.  
  324.    IPT FORTRAN lint 1096 East Meadow Circle, Palo Alto, CA 94303, 415/494-7500.
  325.  
  326.    Forwarn from quibus 719 527 1384.
  327.  
  328.    QA-FORTRAN from PRL 
  329.     Programming Research Ltd
  330.     Glenbrook House
  331.     1/11 Molesey Road
  332.     Hersham
  333.     Surrey, KT12 4RH
  334.  
  335.     Tel:  0932 88 80 80
  336.     Fax:  0932 88 80 81
  337.     E-mail: les_hatton@prqa.co.u
  338.  
  339.    FORCHECK from Leiden University ND 31 71 276804
  340. "    Announcing: The demo of FORCHECK a Fortran development tool.
  341.  
  342.     The MS-Windows (or WABI) based demo of FORCHECK, a Fortran development
  343.     tool, is now available simtel as
  344.          pub/msdos/fortran/fckdemo1.zip (SimTel Software
  345.          Repository (primary site oak.oakland.edu).
  346.     (Note: directory names, such as SimTel, are case sensitive.)
  347.  
  348.     If you are a Fortran programmer it will be a great asset in developing
  349.     portable and reliable code.
  350.  
  351.     Leiden University
  352.     email: forchk@Rullf2.LeidenUniv.NL
  353. "
  354. Actually contrary to the posters claim, this isn't a demo, its a
  355. hypertext file. Useful, helpful, but not a demo in the usual sense of
  356. the word ;> <khb>
  357.  
  358.    FTNCHEK from netlib. One may receive FTNCHEK by mailing to
  359.    netlib@ornl.gov the following message:
  360.  
  361.     send ftnchek from fortran
  362.  
  363.     And Ajay Shah, (213)749-8133, ajayshah@usc.edu
  364.     You may want to mention f2c followed by an ANSI C compiler as a great
  365.     free fortran lint. I could not have survived writing fortran if it
  366.     were not for f2c.  You need to know some C to deal with the error
  367.     messages, but that's not a bad price to pay.
  368.  
  369.  
  370.    HP provides a syntax checking facility with
  371.    their Fortran 77 product.
  372.  
  373.    Sun provides a syntax checking facility (triggered
  374.    by Xlist) with their Fortran 77 product (3.0.1).
  375.  
  376.     Other vendors do too, no doubt.
  377.  
  378.  
  379.  
  380. ~From: atae@spva.ph.ic.ac.uk (Ata Etemadi)...
  381. A very kind soul who wishes to remain anonymous sent me the answer below.
  382. ....
  383.  
  384. 1.  There is a prettyprinter (called TIDY) available via FTP from the SimTel
  385.     Software Repository (primary site oak.oakland.edu).
  386.     It's in the directory SimTel/msdos/fortran
  387.     (Note: the directory name SimTel is case sensitive.)
  388.  
  389.     Capsule review:  does an ok job, sometimes has trouble with
  390.     newer extensions (and even some Fortran 77 standard features).
  391.     Not too bright about making good continuation-line break decisions.
  392.     Free, and available via FTP, so probably the quickest solution.
  393.     Includes source (in Fortran).
  394.  
  395. 2.  Greg Flint (afc@klaatu.cc.purdue.edu) at Purdue distributes a program
  396.     called CLEAN77.  Pretty good (higher quality than #1 above), also free,
  397.     but must be obtained from Purdue (not available via FTP, not
  398.     redistributable).  Available for assorted systems: PC, UNIX, etc.
  399.     In Fortran, comes with source.
  400.  
  401. 3.  There is an excellent prettyprinter in TOOLPACK - probably has
  402.     more options than any other.  Has trouble with extensions, such
  403.     as long variable names.  Free, comes in source form, in Fortran.
  404.     TOOLPACK as a whole is pretty huge, and requires some work to
  405.     install, but it might be worth it if you stick to pretty much
  406.     standard Fortran.  Distributed commercially for
  407.     a fee by NAG, who may have a new, improved version that is better
  408.     than the free one - I don't really know. Available via ftp (see archie
  409.     for locations)
  410.  
  411. 4.  SPAG, formerly sold by OTG Systems (about $1000 for MS-DOS, more for Unix).
  412.     Its main function is to restructure GOTOs into IF-THEN-ELSEs, but
  413.     it also prettyprints.  (I think they renamed this within the past
  414.     year).
  415.  
  416.  
  417. plusFORT  : a suite of tools for FORTRAN programmers comprising SPAG, GXCHK,
  418.           : QMERGE, CMAKE and others.
  419. Platforms : MS-DOS, Windows, Unix (various), VMS, NT
  420. Pricing   : Commercial - from 700 or $1000 : Educational 40% discount
  421.  
  422. Pretty-printer: Many options. Can insert declarations for implicitly typed
  423.               : symbols. Dead code & redundant variable removal. Symbol
  424.               : name-change option. Can use case to highlight symbol type.
  425.               : Also many F66<->F77<->F90 conversions.
  426. Restructuring : Re-organises spaghetti code using block IF, DO WHILE etc.
  427.               : Moves code-blocks to minimise control jumps. Can duplicate
  428.               : code where this helps. Before & after complexity metrics.
  429. Static Anal.  : Comprehensive global COMMON block & argument checks.
  430.               : Identifies globally unused, used but not set & set but not
  431.               : used. System documentation & call-tree.  Interactive access
  432.               : to static analysis database.
  433. Dynamic Anal. : Insert probes in source code to detect the use of unassigned
  434.               : variables, array elements & char substrings at run-time.
  435. Coverage Anal.: Inserts probes in source code to identify execution
  436.               : hot-spots, & untested code.  Accumulates usage over a series
  437.               : of runs.  Annotates source files.
  438. CMAKE         : A bit like make, but doesn't need a make-file. Automatically
  439.               : works out INCLUDE file dependencies.
  440. QMERGE        : Tool for dealing with system-dependent code.
  441.  
  442. Polyhedron Software Ltd.
  443. Linden House
  444. 93 High St.                     Tel. +44(0)1865-300579
  445. Standlake                       Fax. +44(0)1865-300232
  446. WITNEY                          Compuserve 100013,461
  447. OX8 7RH                         Internet   John@polyhdrn.demon.co.uk
  448. United Kingdom
  449.  
  450.  
  451. 5.  FOR-STRUCT, sold by Cobalt Blue.  Also a GOTO restructurer that
  452.     prettyprints.  About $700 for MS-DOS.  Available from most of the
  453.     big PC software dealers (Programmer's Paradise, etc...)
  454.     (They now have a "budget" version that costs about $250 but has
  455.     program-size limitations.)
  456.  
  457. 6.  PRETTY, sold by Quibus Enterprises, Inc.  Restructures GOTOs, also
  458.     indents, relabels, moves Formats, etc. $149 for MS-DOS, $500 for Unix
  459.     workstations.  Call (719) 527-1384 for more info.
  460.  
  461.  
  462. ~From: "John D. McCalpin" <mccalpin@perelandra.cms.udel.edu>
  463. Not too many people use it, but you might want to add TOOLPACK to
  464. the list of FORTRAN "lint" packages.  Here is the blurb that I
  465. send to people who are interested:
  466.  
  467. ======================================================================
  468. TOOLPACK is a large set of utilities written in FORTRAN to do FORTRAN
  469. code analysis and transformation.
  470.  
  471. TOOLPACK begins by actually parsing the program with a fully FORTRAN-
  472. compliant parser and then does all the code transformations on the
  473. parse and comment trees.
  474.  
  475. This means that you cannot confuse TOOLPACK by silly FORTRAN-isms that
  476. can easily overwhelm more naive utilities (such as ftnchek).  For
  477. example, TOOLPACK correctly handles statements such as:
  478.  
  479.       D O U B L E  P R E C I S I O N   A(100,100)
  480.       doubleprecision fred
  481.  
  482.       DO I = 1.2
  483.       READ(I,J) = 10.
  484.  
  485.  
  486. The usual interface to TOOLPACK is a set of 'csh' scripts that run the
  487. various TOOLPACK utilities to do specific tasks.
  488.  
  489. The ones you will find most useful are: pol, polx, apt, dapt, decs,
  490. getlst, and discard.   These are the prettyprinter, precision converter,
  491. declaration standardizer, and some necessary utilities.  See below for
  492. more details.
  493.  
  494. By aware that TOOLPACK is *very* rigorous about the FORTRAN-77
  495. standard.  You may or may not consider this an advantage.
  496.  
  497. The scripts are described by the 'scripts' script, which delivers the
  498. following:
  499. ----------------------------------------------------------------------------
  500. In the Toolpack script summaries below, the section numbers refer to
  501. the Unix environment Users' Guide where more detailed information can
  502. be found.  To obtain on-line information about a script's usage, type
  503. its name without any arguments.
  504.  
  505. FORTRAN Analysis Facilities
  506.  
  507.   getlst  Produce a listing showing statement and token numbers. Report
  508.           lexical scanning warnings and errors. (3.1.1)
  509.  
  510.   syn     Report errors and warnings detected by lexical scanning, parsing,
  511.           and examining a set of symbol attributes. (3.1.2)
  512.  
  513.   sem     Report errors and warnings detected by lexical scanning, parsing,
  514.           and examining an extended set of symbol attributes. (3.1.3)
  515.  
  516.   pfort   Report errors and warnings detected by lexical scanning, parsing,
  517.           examining an extended set of symbol attributes, checking for unsafe
  518.           references, and checking conformance to a portable subset of
  519.           FORTRAN. (3.1.4)
  520.  
  521.   statdoc In a user-supplied report template, place information derived from
  522.           static analysis to assist in documenting the program.  Examples of
  523.           information the user may request are COMMON block usage, symbol
  524.           attributes, and a graph of subprogram calls. (3.1.5)
  525.  
  526.   inst    Instrument a FORTRAN program so that the instrumented program, when
  527.           executed, produces information about program execution. (3.2.1)
  528.  
  529.   rundoc  Execute a program instrumented by inst and, in a user-supplied
  530.           report template, place information derived from dynamic analysis
  531.           to assist in documenting the program.  For example, the user may
  532.           determine the frequency of execution of program segments. (3.2.2)
  533.  
  534. FORTRAN Transformation Facilities
  535.  
  536.   pol     Format a FORTRAN program under control of user-supplied options
  537.           in a Polish option file. (4.1.1)
  538.  
  539.   polx    Construct a Polish option file via a menu-driven editor. (4.1.2)
  540.  
  541.   decs    Rebuild the declarative part of a FORTRAN program. (4.2.1)
  542.  
  543.   apt     Transform a single-precision version of a FORTRAN program to
  544.           double precision or vice versa. (4.3.1)
  545.  
  546.   dapt    Convert precision and rebuild the declarations, combining the
  547.           functions of apt and decs. (4.3.2)
  548.  
  549.   cname   Change the names in a FORTRAN program that satisfy conditions
  550.           derived from information in either the lexical token stream or
  551.           the symbol table or both. (4.4.1)
  552.  
  553.   lname   Transform a FORTRAN program containing long names to a program
  554.           with standard names. (4.4.2)
  555.  
  556.   stf     Rebuild the flow of control in a FORTRAN program to standardized
  557.           form. (4.5.1)
  558.  
  559.   ucs     Transform nests of DO loops matching certain paradigms so that
  560.           the transformed code executes more efficiently on vector machines.
  561.           (4.6.1)
  562.  
  563. Miscellaneous Facilities
  564.  
  565.   fdiff   Compare two FORTRAN programs at the lexical token level. (5.1.1)
  566.  
  567.   dac     Compare two data files, neglecting certain formatting differences
  568.           and numerical differences smaller than a given tolerance. (5.1.2)
  569.  
  570.   vcon    Create, edit, and retrieve versions of a file contained in a
  571.           version file. (5.2.1)
  572.  
  573.   discard Remove unneeded files created by the above scripts. (5.3.1)
  574.  
  575.   scripts Print this summary of the scripts. (5.4.1)
  576.  
  577. ----------------------------------------------------------------------------
  578.  
  579. TOOLPACK can be obtained by anonymous ftp from perelandra.cms.udel.edu
  580. in the directory pub/Lang/Toolpack/.
  581. The UNIX version is in the file toolpack.tar.Z
  582. Serious hackers will want the versions in the Distrib directory.
  583.  
  584. The package is known to compile on Silicon Graphics and Sun machines,
  585. though the Makefile is reasonably braindamaged.
  586.  
  587. You will need about 16 MB for the stripped executables on an SGI machine.
  588. Figure on double that for compiling the package.....
  589.  
  590. Have fun!
  591. --
  592. John D. McCalpin            mccalpin@perelandra.cms.udel.edu
  593. Assistant Professor            mccalpin@brahms.udel.edu
  594. College of Marine Studies, U. Del.    John.McCalpin@mvs.udel.edu
  595.  
  596. Aside from code reformatting, there is the other meaning of pretty
  597. printing ...
  598.  
  599. ~From: James F Hall <james.f.hall@uwrf.edu>
  600. ....
  601.  
  602. Second, on Q12 in the faq, about available pretty printers for
  603. Fortran...  Some time ago, I found a pretty printer called "lgrind",
  604. which converted a Fortran program into LaTeX/TeX.  This text could be
  605. included in a larger LaTeX/TeX file, or processed immediately.  I
  606. chose not to use this because I found it was not the best use of my
  607. quota, but others may find it useful.
  608.  
  609. Lgrind may be found using an archie search:
  610.     archie lgrind
  611. ;;;;
  612. Q4) "Why do people use FORTRAN?, C is so much better"
  613.  
  614.    One should avoid such pointless arguments .... if you feel this
  615.    way, don't subscribe to comp.lang.fortran.
  616.  
  617.    This sort of question always triggers off a protracted discussion,
  618.    the highlights of which are typically:
  619.  
  620.        a) FORTRAN and C have different semantics. A FORTRAN optimizer
  621.       knows more about aliasing, function interactions, and I/O. A
  622.       C optimizer has to infer or compute such information. C
  623.       bigots typically have neither written such optimizers nor
  624.       worked with folks who do it for a living, and are prone to
  625.       dismiss such arguments as being petty and neolithic.
  626.  
  627.       FORTRAN programmers are often a bit more in touch with high
  628.       performance computing, and are unwilling to bet that heavily
  629.       on compiler wizardry.
  630.  
  631. <enter Peter van der Linden author of "Expert C Programming" >
  632.  
  633.           In addition, ANSI C section 2.1.2.3 on Program Execution
  634.       makes it clear that associative and commutative regrouping
  635.       of operands is only allowed if it produces the same result
  636.       as it would if the regrouping had not been done.  Where it
  637.       makes a difference is on hardware that produces an exception
  638.       on arithmetic overflow, and the regrouping either causes or
  639.       avoids an exception, that otherwise would not/would take
  640.       place.  In ANSI C
  641.  
  642.       a = a + 32760 + b   MUST be evaluated as  (a + 32760) + b
  643.                                         NOT as   a +(32760  + b)
  644.                                  UNLESS the overflow exception will be
  645.       the same in either case.
  646.  
  647.           Fortran is somewhat less tightly-buttoned about this, and
  648.       allows the compiler-writer to regroup the expression and
  649.       evaluate it in either order. Thus, in Fortran, whether you
  650.       get an exception or not depends on the compiler, the level
  651.       of optimization, and the hardware.  In ANSI C, itonly
  652.       depends on the hardware.
  653.  
  654.  
  655.       Of course, compiler options, vendor extensions and the like
  656.       sometimes narrow the difference. Also, some Fortran
  657.       compilers do not take advantage of all of these features of
  658.       the language, thus narrowing the gap in the other direction.
  659.  
  660.       On any given code, on any given system, all bets are off.
  661.  
  662.       b)  There is a vast body of existing FORTRAN code (much of which
  663.       is publically available and of high quality). Numerical
  664.       codes are particularly difficult to "vet", scientific
  665.       establishments usually do not have large otherwise idle
  666.       programming staffs, etc.  so massive recoding into any new
  667.       language is typically resisted quite strongly.
  668.  
  669.       c)  Fortran tends to meet some of the needs of scientists
  670.       better.  Most notably, it has built in support for:
  671.         - variable dimension array arguments in subroutines
  672.         - a compiler-supported infix exponentiation operator which
  673.           is generic with respect to both precision and type,
  674.           *and* which is generally handled very efficiently  or
  675.           the commonly occuring special case floating-point**small-integer
  676.         - complex arithmetic
  677.         - generic-precision intrinsic functions
  678.  
  679.       d)  Retraining staff is quite expensive.
  680.  
  681.       e)  It is sometimes argued that:
  682. - Jonathan Thornburg <also responsible for misc. other fixups>
  683.     Fortran tends to be easier for non-experts to learn
  684.     than C, because its "mental model of the computer" is
  685.     much simpler.  For example, in Fortran the programmer
  686.     can generally avoid learning about pointers and memory
  687.     addresses, while these are essential in C.  More generally,
  688.     in Fortran the difference between (C notation) x, &x,
  689.     and often even *x is basically hidden, while in C it's
  690.     exposed.  For non-experts this makes Fortran a considerably
  691.     simpler language.
  692.  
  693.     Because of this relative simplicity, for simple programming
  694.     tasks which fall within its domain, (say writing a simple
  695.     least-squares fitting routine), Fortran generally requires
  696.     much less computer science knowledge of the programmer than
  697.     C does, and is thus much easier to use.
  698.  
  699.  
  700. Q5)  [deleted]
  701.  
  702. Q6) Where can I get "foo" (some random package)
  703.         contributed by:
  704.                 Marc R. Roussel
  705.                                 mroussel@alchemy.chem.utoronto.ca
  706.  
  707.     Use archie. archie is an online database of what is available and
  708.     where on the "net". Archie can be used either via telnet or by
  709.     mail.
  710.  
  711.     For information about archie send
  712.  
  713.     mail archie@archie.rutgers.edu
  714.     subject: help
  715.  
  716.     And you will get back copious directions on how to use archie.  If
  717.     you prefer interactive experimentation, telnet to
  718.     archie.rutgers.edu and log in as archie.  No password will be
  719.     required.  The first thing you will be shown is a list of other
  720.     archie servers.  If one of these servers is geographically much
  721.     closer to you than Rutgers, NJ, please disconnect (by typing 'quit')
  722.     and use that one.  To save you this step, here is the latest list of
  723.     archie sites:
  724.  
  725.     archie.rutgers.edu     128.6.18.15     (Rutgers University)
  726.     archie.unl.edu     129.93.1.14     (University of Nebraska in Lincoln)
  727.     archie.sura.net     128.167.254.179 (SURAnet archie server)
  728.     archie.ans.net     147.225.1.2     (ANS archie server)
  729.     archie.au         139.130.4.6     (Australian server)
  730.     archie.funet.fi     128.214.6.100     (European server in Finland)
  731.     archie.doc.ic.ac.uk  146.169.11.3     (UK/England server)
  732.     archie.cs.huji.ac.il 132.65.6.15     (Israel server)
  733.     archie.wide.ad.jp     133.4.3.6     (Japanese server)
  734.  
  735.     I believe that all of these servers run the mail server as well as
  736.     the telnet and archie server software.  (The archie server is a
  737.     third way to use archie.  It's probably the best way, but it
  738.     requires that you install software.)
  739.  
  740.     Once you logged into an archie server, you will want to make
  741.     sure that all the information you will retrieve will be mailed to
  742.     you.  Type
  743.  
  744.     set mailto userid@machine.foo.edu
  745.  
  746.     where, of course, you will substitute your own email address for the
  747.     made-up one shown above.  You are now ready to search the database.
  748.     If at any time you want to know what options are available to you,
  749.     type help.  To search for a program or file, type
  750.  
  751.     prog foo
  752.  
  753.     where foo is the name of the program or file required.  Once your
  754.     search is done, type 'mail' to have the output sent to you.  (The
  755.     output will almost always be several pages long.)  Then type 'quit' to
  756.     exit.
  757.  
  758. Q7)  Where can I get a free (FORTRAN 77) compiler?
  759.  
  760.     One such is f2c.
  761.  
  762. ~From: mwm@a.gp.cs.cmu.edu (Mark Maimone)
  763.  
  764.  
  765.     Since there have been several requests for a Fortran to C translator
  766. in the past week, I'm reposting the announcement about f2c.  The short
  767. answer is you can get f2c by anonymous-ftp from netlib.att.com in
  768. directory dist/f2c.
  769.  
  770. ------------------------------------------------------------------------------
  771.  
  772.     Source for f2c, a Fortran 77 to C translator jointly developed by
  773. folks from Bell Labs, Bellcore, and Carnegie Mellon, is now freely
  774. available.
  775.  
  776.     F2c was derived from the original UNIX operating system's f77(1),
  777. and the generated C follows f77's calling conventions; on some machines, the
  778. resulting object files are interchangeable with (and behave
  779. indistinguishably from) objects compiled by f77.  The main "advantage" of
  780. f2c is that it converts ANSI standard Fortran 77 into C without manual
  781. intervention, at least when invoked by a suitable script or makefile (that
  782. may need to exercise an f2c option to ensure that COMMON blocks are defined
  783. just once).  The main "problems" are that f2c does no code restructuring
  784. (e.g., gotos are preserved) and that Fortran I/O gets converted into a bunch
  785. of calls; thus the translated C code doesn't look too pretty, and in general
  786. one would need to maintain the Fortran rather than its translation into C.
  787. [F2c is not meant to displace the services of commercial vendors whose
  788. business is to convert Fortran into maintainable C.]
  789.  
  790.     There is a plethora of options, many of which exist to support
  791. different compilation environments for the translated C (e.g., ANSI C or C++
  792. compatibility, different type sizes, separate files for COMMON blocks to
  793. appease "smart" linkers).  So far f2c (and f2c-generated source) has
  794. compiled successfully on many machines:  Sun, Vax, IBMRT, Apollo, SGI, MIPS,
  795. and Cray to name a few.
  796.  
  797.     F2c has been under test by the net community for over a year
  798. and has been verified on the NBS tests, several large math libraries,
  799. floating point tests, even code for laying cable on the ocean floor!
  800.  
  801.     To find out about f2c, send the following E-mail message to netlib
  802. (netlib@research.att.com or research!netlib):
  803.  
  804.     send index from f2c
  805.  
  806. Your message will be answered automatically (by a program -- see CACM vol.
  807. 30 #5 (May, 1987), pp. 403-407).  You will receive a reply explaining how to
  808. automatically acquire f2c source (about 600K), f2c library source (130K),
  809. and supporting info (man page, etc).  Or you can anonymous-FTP to
  810. research.att.com and look in directory dist/f2c at these files:
  811.  
  812.     all.Z -- 250K compressed shar file for f2c
  813.     f2c.ps.Z -- 24 page tech report describing f2c
  814.     index -- general info about files
  815.     libf77.Z, libi77.Z -- compressed shar files for libraries
  816.  
  817. ****************************** DISCLAIMER ******************************
  818.          Careful! Anything free comes with no guarantee.
  819. ************************************************************************
  820.  
  821. ----------------------------------------------------------------------
  822. Mark Maimone                phone: (412) 268 - 7698
  823. Carnegie Mellon Computer Science    email: mwm@cs.cmu.edu
  824.                            cmcspt!mwm@cs.cmu.edu
  825.  
  826. Notes: f2c accepts only fairly vanilla FORTRAN; vendor supplied f77's
  827.        usually produce better quality code, and accept a wider variety
  828.        of codes.
  829.  
  830. The FSF is working on a f77 front end to be integrated with the gcc back end.
  831.  
  832. "A mailing list exists for those interested in the Fortran front end for
  833. GCC.  To subscribe, ask: `info-gnu-fortran-request@prep.ai.mit.edu'.
  834. Or try "finger -l fortran@gate.gnu.ai.mit.edu"
  835.  
  836. There is no FSF project to do a f90 front end. The author of the g77
  837. front end is willing, if anyone will fund it.
  838.  
  839. Mike Craymer
  840. Geodetic Survey of Canada
  841. craymer@emr.ca
  842.  
  843. More about f2c from Judah Milgram
  844.  
  845. I recently asked about running f2c with djgpp. Turns out to be
  846. easy and together they make a good Fortran compiler for PC's.
  847. Here's a summary.
  848.  
  849. I started with f2c dated Nov. 1994 (netlib.att.com in netlib/f2c).
  850. djgpp was v. 1.12 (omnigate.clarkson.edu in pub/msdos/djgpp.)
  851.  
  852. Use the pre-compiled msdos f2c executable that comes with the f2c
  853. release. Compile the libraries with djgpp, making the changes
  854. listed below. They aren't necessarily the most sensible changes,
  855. but they worked for me. Write if you have a better idea.
  856.  
  857. Thanks to all net people who helped, especially Dr. James Lupo.
  858.  
  859. Judah Milgram
  860. milgram@glue.umd.edu
  861. ______________________________________________________________________
  862.  
  863. libf77/makefile:
  864. change: CC = cc    to: CC = gcc
  865. comment out:
  866.         ld -r -x -o $*.xxx $*.o
  867.         mv $*.xxx $*.o
  868.  
  869. libf77/s_paus.c:
  870. change:
  871. extern int getpid(void), isatty(int), pause(void);
  872. to:
  873. extern int getpid(void), isatty(int);
  874. #ifndef _djgpp_std_h
  875. extern int pause(void);
  876. #endif
  877.  
  878. libi77/makefile:
  879. change: CC = cc    to: CC = gcc
  880. comment out:
  881.         ld -r -x -o $*.xxx $*.o
  882.         mv $*.xxx $*.o
  883.  
  884. libi77/fio.h:
  885. add to top of file:
  886. #ifdef abs
  887. #undef abs
  888. #endif
  889.  
  890. libi77/rawio.h:
  891. comment out entire block:
  892. #ifdef MSDOS
  893. #include "io.h"
  894. #define close _close
  895. #define creat _creat
  896. #define open _open
  897. #define read _read
  898. #define write _write
  899. #endif
  900.  
  901. Easiest way to build libf2c.a is to go into the f2c/ directory and do:
  902. ar r libf2c.a libf77/*.o libi77/*.o
  903. ranlib libf2c.a
  904. (If you do it this way you can delete libf77/libf77.a and libi77/libi77.a)
  905. Then copy libf2c.a into djgpp/lib
  906. and copy f2c.h into djgpp/include
  907.  
  908. And remember to run the executable with 'go32 foo'. Or, do
  909. 'coff2exe foo' to produce a .exe file which you can run in
  910. the usual manner.
  911.  
  912. ---------------------------------------------
  913. ~From: Greg Lindahl <gl8f@fermi.clas.virginia.edu>
  914.  
  915. f2c is quite free.
  916. ---------------------------------------------
  917. ~From: zrzm0111@helpdesk.rus.uni-stuttgart.de (MUFTI)
  918.  
  919. Someone asked for a cheap MSDOS fortran compiler for students.
  920. The bcf77 by andreas koesterli has a student version, which costs nothing.
  921. The student version may not be used in any comercial enviroment and
  922. problems.
  923. Its a version that write a none standart object format and requires 640KB.
  924. If all input is in UPPERCASE, it supports full fortran 77 standart.
  925.  
  926.  
  927. The site is ftp.uni-stuttgart.de, the compiler can be found
  928. in /pub/systems/pc/lang/fortran/compiler/bcf77.zip.
  929. It can be access via ftpmail@ftp.uni-stuttgart.de for those of You
  930. without ftp.
  931.  
  932. PI at the User Help Desk Comp.Center U of Stuttgart, FRG      26 years to go !
  933. EMail: pi@rus.uni-stuttgart.de
  934. Phone: +49 711 685-4828                (aka Kurt Jaeger)
  935. -------------------------------------------------
  936. ~From: barbee@noir.llnl.gov (Troy Barbee)
  937.  
  938. In article <1991Dec11.160531@IASTATE.EDU>, cfrandal@IASTATE.EDU (Charles
  939. F Randall) writes:
  940. |> Note that the .txt file for this NOT in English:
  941. |>
  942. |> BC-FORTRAN77 Version.b besteht aus Compiler, Linker,
  943. |> Modulbibliothek und einem residenten Laufzeitsystem, das
  944. |> u.a. einen einfachen Debugger enthaelt. Diese Version
  945. |> laeuft auf einem MS-DOS Rechner mit 640kB RAM. Eine
  946. |> Festplatte ist nicht erforderlich. Hiermit soll in
  947. |> einfacher Weise ein Compiler fuer Programmierkurse
  948. |> zur Verfuegung stehen. Dem kommt entgegen, dass
  949. |> entsprechende Compiler fuer ATARI ST und AMIGA existieren.
  950. |>
  951. |> Anfragen nach Zusendung einer anderen oder neueren Version
  952. |> werde ich nur noch beantworten, wenn DM 20.- (Schein oder
  953. |> Scheck) Aufwandsentschaedigung (Diskette, Umschlag, Porto
  954. |> und Zeit) beigefuegt sind. Ich versende ausschliesslich
  955. |> 3 1/2 Zoll Disketten.
  956. |>
  957. |> Anybody willing to translate?
  958.  
  959. Here's a quick and dirty translation (i.e., I didn't look in
  960. my dictionary, so the sentences in [] are just rough translations)
  961.  
  962. BC-FORTRAN77 Version b consists of a compiler, linker, module
  963. library, and a resident runtime system that contains (among
  964. other things) a simple debugger. This version runs on a MS-DOS
  965. computer with 640KB RAM.  A hard disk is not required.
  966. [The intent is to provide a compiler for programming courses
  967. in a simple manner. Similar compilers exist for the ATARI ST and the
  968. AMIGA.]
  969.  
  970. Requests for another or a newer version will only be answered
  971. if they are accompanied by DM 20.- (check or cash) to defray costs
  972. (diskette, envelope, postage, and time). I can only send 3 1/2 inch
  973. diskettes.
  974.  
  975. ---------------------------------------------------------
  976. ~From: pmh2962@zeus.tamu.edu (Pat Hayes)
  977.  
  978. "BC-FORTRAN 1.3b, is a FORTRAN compiler from Germany.  The
  979. documentation is in German.  Sample source code is included.  The compiler
  980. generates big, inefficient EXE programs and is offered only because there
  981. are
  982. no other pd/shareware FORTRAN compilers available.  700K of disk space is
  983. required."
  984.  
  985. --------------------------------------------------------------
  986. ~From: PVT Joe Snuffy <DOYLECM@ROSEVC.Rose-Hulman.Edu>
  987.  
  988.   I am sort of asking for your help here.  I translated the documentation
  989. for
  990. BC-F77 and am willing to make it available to people.  However, my
  991. newsreader
  992. will not let me post with distribution wider than our local site (or at
  993. least,
  994. that appears to be what is going on).  Could you do me a favor and post the
  995. text that follows?  You might also tell those others who write to you that
  996. this
  997. translation is available.
  998.  
  999. Chris Doyle   DoyleCM@RoseVC.Rose-Hulman.Edu
  1000.  
  1001. Stuff to be posted starts below this line.  Adjust header/newsgroup/etc as
  1002. appropriate.  Thanks!
  1003.  
  1004. --------------------------------------------------------------------------------
  1005. ~From: doylecm@HYDRA.ROSE-HULMAN.EDU
  1006.  
  1007. For those people who FTP this thing and want to be able to read the
  1008. documentation, I have translated the README file into English and will
  1009. let you have a copy of the translation upon request.  Translation is
  1010. about 400 lines long.
  1011.  
  1012. BCF77 (FORTRAN 77 compiler, written by Andre Koestli) distribution.
  1013. This compiler/linker/run-time module and supporting files are available
  1014. via anonymous FTP from "rusmv1.rus.uni-stuttgart.de" as the file
  1015. "/soft/pc/lang/fortran/compiler/bcf77.zip".
  1016.  
  1017. ----------------------------------------------------------
  1018. ~From: burton@asdsun.larc.nasa.gov (John Burton)
  1019.  
  1020. There is another alternative...netlib@research.att.com distributes f2c
  1021. which is a translator for converting FORTRAN 77 code into C (ANSI C
  1022.  
  1023. or K&R C), or C++ (I think). There is a version of f2c that is ported
  1024. to MSDOS machines.
  1025. How fast & efficient the code is now depends on how good your C
  1026. compiler is (I hear MSC and BC++ do a pretty good job of optimization)...
  1027.  
  1028. f2c is available via anonymous ftp...ftp to research.att.com & login as
  1029. netlib.
  1030.  
  1031. -----------------------------------------------------
  1032. ~From: icsu8209@cs.montana.edu (Lou Glassy)
  1033.  
  1034. In article <3FEB199217343244@zeus.tamu.edu>
  1035.                      pmh2962@zeus.tamu.edu (Pat Hayes) writes:
  1036. [comments about an english translation of the BCF77 readme.doc]
  1037. Has anyone attempted translating the error messages inside the compiler?
  1038. (This involves editing the binary.)
  1039. from the translation a friend provided for me:
  1040. "...the error messages are self-explanatory, except for the following:
  1041.   [a page or two of error messages] ..."
  1042. the self-explanatory error messages (not listed in the readme.doc)
  1043. comprise the bulk of the error messages, i think.
  1044.  
  1045. --------------------------------------------------------
  1046. >From alan@dmsmelb.mel.dms.CSIRO.AU Wed Jan 26 12:27:49 1994
  1047.  
  1048. BCF is available by ftp from many places.   For instance, it is in the
  1049. directory fortran on simtel (see q3).    I did `archie bcf' and found
  1050. it is also in directory  /usenet/comp.archives/languages/fortran on
  1051. src.doc.ic.ac.uk.
  1052.  
  1053.  
  1054. There have been many complaints about bcf - but it is free.   I recommend
  1055. Lahey's Personal Fortran PF77L to those who have been disappointed with
  1056. bcf.   I believe it costs US$99.
  1057.  
  1058. Alan Miller, Quality Improvement Project
  1059. CSIRO Division of Mathematics & Statistics, Melbourne, Australia
  1060. Phone: +61 3 542-2266   Fax: +61 3 542-2474  E-mail: alan@mel.dms.csiro.au
  1061. Mail: CSIRO DMS, Private Bag 10, Rosebank MDC, Clayton, Vic. 3169,
  1062. Australia
  1063.  
  1064.                 Wojciech Galazka
  1065. --
  1066. Wojciech Galazka <wgalazka@chem.uw.edu.pl>
  1067.    Computer Center
  1068.  Chemistry Department,  University of Warsaw
  1069.  Pasteura 1, 02-093 Warsaw, Poland
  1070.  
  1071. Q8)  What is the best (FORTRAN 77) compiler for a PC?
  1072.  
  1073.     There are many products, some are quite good. Few are free.
  1074.     f2c and gcc can be had for the PC environment. Popular ones are:
  1075.  
  1076.     Lahey (very fast compilation; excellent reputation for support)
  1077.     Watcom (touted for good optimization)
  1078.     MicroWay (support for odd floating point units)
  1079.     LPI  (multi-platform support)
  1080.     MicroSoft (various good hooks into windows and such)
  1081.     Absoft (multi-platform support)
  1082.  
  1083.    It is beyond the scope of a faq to provide a commercial endorsement.
  1084.  
  1085. Q9) How does Fortran 90 relate to FORTRAN '77?
  1086.  
  1087.     With a few minor exceptions, Fortran 90 is a superset
  1088.     of X3.9-1978 FORTRAN.
  1089.  
  1090. But this does not mean that all "77" codes will port sans changes.
  1091. Many (if not most) programmers employed constructs beyond the '77
  1092. standard, or rely on unspecified behavior (say, assuming that an OPEN
  1093. of an existing file will position the file pointer to just past the
  1094. last record already written) which has changed (that is to say, has
  1095. become specified).
  1096.  
  1097. This leads to the obvious question, what is new in Fortran 90?
  1098.  
  1099. A complete answer would require considerable text. Some of the most
  1100. obvious additions are:
  1101.  
  1102.     1) array notation (operators, etc.)
  1103.     2) dynamic memory allocation
  1104.     3) derived types and operator overloading
  1105.     4) keyword argument passing, INTENT (in, out, inout)
  1106.     5) modules
  1107.     6) modern control structures
  1108.     7) free format source code form
  1109.     8) other stuff
  1110.  
  1111. While it is always tricky to characterize the motives of a large group
  1112. of people, I <khb> am inclined to try as follows:
  1113.  
  1114.    '90 incorporates two sets of improvements: (1) relatively minor
  1115.    fixups that *could* have been done earlier (2) relatively major
  1116.    changes to enable better software engineering practices.
  1117.  
  1118. Sometimes a "minor" fixup has major effect, such as addition of free
  1119. form source form combined with canonization of the MIL-STD 1753
  1120. INCLUDE.
  1121.  
  1122. I further go off on a limb and assert that it was the goal of the
  1123. *committee* to evolve Fortran in a fashion to enable it to continue to
  1124. be the premier language for scientific computation.
  1125.  
  1126.  
  1127. Q10) My compiler is mis-behaving; who enforces the standard?
  1128.  
  1129.     ANSI and ISO standards do not usually have a particular enforcement
  1130.     mechanism. Local bodies sometimes do.
  1131.  
  1132.     However, it should be borne in mind that if *your* source code is
  1133.     not standard compliant there is *NO* obligation for a FORTRAN ('77
  1134.     and before) compiler to do  *ANYTHING* in particular. In Fortran (90)
  1135.     the text in "constraints" must be tested and a warning produced
  1136.     (compiler option can be used to evade this, of course).
  1137.  
  1138.     Some (notably Guy Steele, with respect to another standard) have
  1139.     noted that when non-standard complying code is encountered, a
  1140.     compiler may do *ANYTHING* including initation of Global Warfare.
  1141.     Keep this in mind.
  1142.  
  1143.     When you do find a bona fide compiler bug, you are generally best
  1144.     served by reporting it to the *vendor*. If you neglect to tell the
  1145.     vendor, how can you complain about it not being fixed?
  1146.  
  1147.     When reporting a *suspected* bug be sure to be quite specific
  1148.     about the computer system, operating system rev level (patches
  1149.     applied if known) and *compiler*version* (and patches thereof).
  1150.     It is very hard for people to read your mind; but they will try.
  1151.     The attempts are often entertaining, sometimes helpful, but always
  1152.     an inefficient use of people-time and net-bandwidth.
  1153.  
  1154.     Also note that it is generally helpful if you cut down the example
  1155.     to the smallest size you can. Vendors are developers too; the
  1156.     tendency is invest time/money where one can get the biggest bang
  1157.     for the buck.
  1158.  
  1159.  
  1160. Q11) What are good books on Fortran?
  1161.  
  1162.     Don't know if they are good. Inclusion in the list is not
  1163.     endorsement.
  1164.  
  1165. On Fortran 90:
  1166.  
  1167. English:
  1168.  
  1169.   Fortran 90 - Counihan, Pitman, 1991, ISBN 0-273-03073-6.
  1170.  
  1171.   Fortran 90 Explained - Metcalf and Reid, Oxford University Press, 1990,
  1172.   ISBN 0-19-853772-7, about $30. This book is a complete, audited
  1173.   description of the language in a more readable style than the standard
  1174.   itself. It is kept up-to-date on each printing with X3J3 and WG5's
  1175.   latest interpretations. It has seven Appendices, including an extended
  1176.   example program that is available by ftp, and a comprehensive Index.
  1177.  
  1178.   Fortran 90 for Scientists and Engineers - Brian D. Hahn, Edward
  1179.   Arnold, 1994, ISBN 0-340-60034-9.
  1180.  
  1181.   Fortran 90 Handbook - Adams, Brainerd, Martin, Smith and Wagener,
  1182.   McGraw-Hill, 1992, ISBN 0-07-000406-4.
  1183.  
  1184.   Fortran 90 Language Guide - Gehrke, Springer, London, 1995.
  1185.  
  1186.   Fortran 90 Programming - Ellis, Philips, Lahey, Addison Wesley,
  1187.   Wokingham, 1994, ISBN 0-201-54446-6.
  1188.  
  1189.   Migrating to Fortran 90 - James F. Kerrigan, O'Reilly Associates,
  1190.   1993, ISBN 1-56592-049-X.
  1191.  
  1192.   Programmer's Guide to Fortran 90, second edition - Brainerd,
  1193.   Goldberg and Adams, Unicomp, 1994.
  1194.  
  1195.   Programming in Fortran 90 - Morgan and Schonfelder, Alfred Waller,
  1196.   Oxfordshire, 1993, ISBN 1-872474-06-3.
  1197.  
  1198.   Programming in Fortran 90 - I.M. Smith, Wiley, ISBN 0471-94185-9.
  1199.  
  1200. Chinese:
  1201.  
  1202.   Programming Language FORTRAN 90 - He Xingui, Xu zuyuan, Wu gingbao and
  1203.   Chen mingyuan, China Railway Publishing House, Beijing,
  1204.   ISBN 7-113-01788-6/TP.187, 1994.
  1205.  
  1206. Dutch:
  1207.  
  1208.   Fortran 90 - W.S. Brainerd, Ch.H. Goldberg, and J.C. Adams, translated
  1209.   by J.M. den Haan, Academic Service, 1991, ISBN 90 6233 722 8.
  1210.  
  1211. French:
  1212.  
  1213.   Fortran 90; Approche par la Pratique - Lignelet, Se'rie Informatique
  1214.   E'ditions, Menton, 1993, ISBN 2-090615-01-4.
  1215.  
  1216.   Fortran 90.  Les concepts fondamentaux, the translation of "Fortran 90
  1217.   Explained" M. Metcalf, J. Reid, translated by M. Caillet and B. Pichon,
  1218.   AFNOR, Paris, ISBN 2-12-486513-7.
  1219.  
  1220.   Fortran 90; Initiation a` partir du Fortran 77 - Aberti, Se'rie
  1221.   Informatique E'ditions, Menton, 1992, ISBN 2-090615-00-6.
  1222.  
  1223.   Les specificites du Fortran 90, DUBESSET, M. et VIGNES, J.,
  1224.   editions Technip, 1993. ISBN 2-7108-0652-5
  1225.  
  1226.   Manuel complet du langage Fortran 90, et guide d'application,
  1227.   LIGNELET, P., S.I. editions, Jan. 1995. ISBN 2-909615-02-2
  1228.  
  1229.   Programmer en Fortran 90, DELANNOY, C., Eyrolles, 1992.
  1230.   ISBN 2-212-08723-3
  1231.  
  1232.   Savez-vous parler Fortran, AIN, M., Bibliotheque des universites
  1233.   (de Boeck), 1994. ISBN 2-8041-1755-3
  1234.  
  1235.   Support de cours Fortran 90 IDRIS - Corde, P. & Delouis, H. (anonymous
  1236.   ftp: ftp.ifremer.fr:pub/ifremer/fortran90/f90_cours_4.ps.gz).
  1237.  
  1238. German:
  1239.  
  1240.   Fortran 90 - B.Wojcieszynski and R.Wojcieszynski, Addison-Wesley,
  1241.   1993, ISBN 3-89319-600-5.
  1242.  
  1243.   Fortran 90: eine informelle Einf"hrung - Heisterkamp,
  1244.   BI-Wissenschaftsverlag, 1991, ISBN 3-411153-21-0.
  1245.  
  1246.   Fortran 90, Lehr- und Arbeitsbuch fuer das erfolgreiche Programmieren -
  1247.   W.S. Brainerd, C.H. Goldberg, and J.C. Adams, translated by
  1248.   Peter Thomas and Klaus G. Paul, R. Olbenbourg Verlag, Muenchen, 1994,
  1249.   ISBN 3-486-22102-7.
  1250.  
  1251.   Fortran 90 Lehr- und Handbuch - T. Michel, BI-Wissenschaftsverlag,
  1252.   1994.
  1253.  
  1254.   Fortran 90 Referenz-Handbuch: der neue Fortran-Standard - Gehrke,
  1255.   Carl Hansen Verlag, 1991, ISBN 3-446163-21-2.
  1256.  
  1257.   Programmierung in Fortran 90 - Schobert, Oldenburg, 1991.
  1258.  
  1259.   Software Entwicklung in Fortran 90 - U"berhuber and Meditz, Springer
  1260.   Verlag, 1993, ISBN 0-387-82450-2.
  1261.  
  1262. Japanese:
  1263.  
  1264.   Fortran 90 Explained - Metcalf and Reid, translated by H. Nisimura,
  1265.   H. Wada, K. Nishimura, M. Takata, Kyoritsu Shuppan Co., Ltd., 1993,
  1266.   ISSN 0385-6984.
  1267.  
  1268. On Fortran in general:
  1269.  
  1270.  
  1271. Author                         Title                                     Year
  1272. Kruger                   Efficient Fortran Programming          1990
  1273. Mojena/Ageloff                 FORTRAN 77                                 1990
  1274. Boyle                          FORTRAN 77 PDQ                             1989
  1275. Bezner                         FORTRAN 77                                 1989
  1276. Tremblay                       PROGRAMMING IN FORTRAN 77                  1988
  1277. Salmon                         ... ENGINEERS & SCIENTISTS WITH FORTRAN 77 1988
  1278. Nyhoff/Leestma                 FORTRAN 77 FOR ENGINEERS & SCIENTISTS      1988
  1279. McCracken/Salmon               ... ENGINEERS & SCIENTISTS WITH FORTRAN 77 1988
  1280. Davis/Hoffman                  FORTRAN 77: A STRUCTURED DISCIPLINED STYLE 1988
  1281. Barnard/Skillicorn             FORTRAN 77 FOR ENGINEERS AND SCIENTISTS    1988
  1282. Gregory A. Moses              Engeneering Applications Software
  1283.                                    Development using FORTRAN 77           1988
  1284. Mashaw                         PROGRAMMING STRUCTURED FORTRAN 77          1987
  1285. Cole                           FORTRAN 77: A STRUCTURED ... APPROACH      1987
  1286. Boillot                        UNDERSTANDING FORTRAN-77                   1987
  1287. Starkey/Ross                   FUNDAMENTAL PROGRAMMING WITH FORTRAN 77    1986
  1288. Rouse/Bugnitz                  INTRODUCTION TO FORTRAN 77                 1986
  1289. Ratzer                         FORTRAN 77 COURSE                          1986
  1290. Page                           FORTRAN 77 FOR HUMANS                      1986
  1291. Lehman                       ... SOCIAL SCIENCES: ALGORITHMS & FORTRAN 77 1986
  1292. Smith                          FORTRAN 77: A PROBLEM-SOLVING APPROACH     1985
  1293. Shelly                         FORTRAN 77: AN INTRODUCTION                1985
  1294. Nickerson                      FUNDAMENTALS OF FORTRAN 77 PROGRAMMING     1985
  1295. Metcalf                        EFFECTIVE FORTRAN 77                       1985
  1296. Metcalf                        FORTRAN OPtimization                       1985
  1297. McKeown                        STRUCTURED PROGRAMMING USING FORTRAN 77    1985
  1298. Hume                           FORTRAN 77 FOR SCIENTISTS & ENGINEERS      1985
  1299. Dillman                        PROBLEM SOLVING WITH FORTRAN 77            1985
  1300. Brainerd                       FORTRAN 77 FUNDAMENTALS AND STYLE          1985
  1301. Borse                          FORTRAN 77 & NUMERICAL METHODS FOR ENGINEERS1985
  1302. Adman                          FORTRAN 77 SOLUTIONS NON-SCIENTIFIC PROBS. 1985
  1303. SSI, Inc. Staff                FORTRAN 77 REFERENCE                       1984
  1304. Etter                          PROBLEM SOLVING WITH STRUCTURED FORTRAN 77 1984
  1305. Etter                          PROBLEM SOLVING USING FORTRAN 77            ?
  1306. Dyck                           FORTRAN 77: A STRUCTURED APPROACH ...      1984
  1307. Chivers/Clark                  FORTRAN 77: A HANDS ON APPROACH            1984
  1308. Adman                          FORTRAN 77 FOR NON-SCIENTISTS              1984
  1309. Willamson/Levesque           * A GUIDEBOOK TO FORTRAN ON SUPERCOMPUTER   1989
  1310. Rule                           FORTRAN 77: A PRACTICAL APPROACH          1983
  1311. Rouse/Bugnitz                  PROGRAMMING THE IBM PC: FORTRAN 77        1983
  1312. Nyhoff/Leestma                 PROBLEM SOLVING WITH FORTRAN 77           1983
  1313. Marateck                       FORTRAN 77                                1983
  1314. Lehmnkuhl                      FORTRAN 77                                1983
  1315. Law                            ANSI FORTRAN 77: INTRO. TO SOFTWARE DESIGN 1983
  1316. Holoien/Behforooz              ... STRUCTURED PROGRAMMING WITH FORTRAN 77 1983
  1317. Grout                        FUNDAMENTAL ... PROGRAMMING USING FORTRAN 77 1983
  1318. Fleming/Redish                 THE U. S. MC MASTER GLOSSARY OF FORTRAN-77  1983
  1319. Cole                           ANSI FORTRAN IV WITH FORTRAN 77 EXTENSIONS  1983
  1320. Wu                             ANSI FORTRAN IV & 77 AND BUSINESS PROGRAMS  1982
  1321. Pollack                        STRUCTURED FORTRAN 77 PROGRAMMING           1982
  1322. Katzan                         FORTRAN 77                                  1982
  1323. Gibson/Young                  INTRODUCTION TO PROGRAMMING USING FORTRAN 77 1982
  1324. Ellis                         STRUCTURED APPROACH FORTRAN 77 PROGRAMMING   1982
  1325. Ellis/Lahey/Phillips          Fortran 90 Programming                1994
  1326. Durgin                        FORTRAN 77                                   1982
  1327. Nanney                        A PROBLEM-SOLVING APPROACH USING FORTRAN 77  1981
  1328. Merchant                      FORTRAN 77: LANGUAGE AND STYLE               1981
  1329. Khailany                      BUSINESS PROGRAMMING FORTRAN IV/ANSI FORTRAN 1981
  1330. Ashcroft                      PROGRAMMING WITH FORTRAN 77                  1981
  1331. Wagener                        FORTRAN 77                                    ?
  1332. Wagener                       PRINCIPLES OF FORTRAN 77 PROGRAMMING         1980
  1333. Meissner/Organick             FORTRAN 77 FEATURING STRUCTURED PROGRAMMING  1980
  1334. Hume/Holt                     PROGRAMMING FORTRAN 77                       1979
  1335. Balfour                       PROGRAMMING IN STANDARD FORTRAN 77           1979
  1336.  
  1337.  
  1338.  
  1339.  
  1340. Q12) Are there pretty printers for FORTRAN? Flowchart generators?
  1341.  
  1342.     Yes.
  1343.  
  1344.     One such is SPAG:
  1345.     Authors are
  1346.  
  1347. Polyhedron Software Ltd.
  1348. Linden House
  1349. 93 High St.                     Tel. +44(0)1865-300579
  1350. Standlake                       Fax. +44(0)1865-300232
  1351. WITNEY                          Compuserve 100013,461
  1352. OX8 7RH                         Internet   John@polyhdrn.demon.co.uk
  1353. United Kingdom
  1354.  
  1355.      part of their plusFORT product. See q3 above.
  1356.     
  1357.  
  1358.     Another is Fortran development Tools from  Quibus 714 527 1384
  1359.  
  1360.     Also FOR_STRUCT from cobalt-blue. 404 518 1116 fax 404 640 1182
  1361.  
  1362.     These more than pretty print, they optionally restructure your
  1363.     code (duplicating code as needed to tidy up strange GOTO lists,
  1364.     turning them into IF-THEN chains, and etc.).
  1365.  
  1366.  
  1367. ~From: dappel@grafted.UUCP (Dave Appel)
  1368.  
  1369. wg@cbnewsm.att.com (Bill Gieske) writes:
  1370. > I have tons of old FORTRAN code, most of it in upper case, the majority
  1371. > of it not indented.  Is there a code beautifier, either PD or $$ that I
  1372. > can run the code through to improve the readability, hence the main-
  1373. > tainability?
  1374. > Reply to me direct.  I will summarize if appropriate.
  1375. > Bill Gieske
  1376. > AT&T Bell Laboratories
  1377. > wg%alux2@att.research.com
  1378.  
  1379.      Call "The Connection at 800-336-1166"  and ask for
  1380. their software catalog.
  1381.  
  1382.      In their catalog that I have, Sprint 1992, there is an
  1383. ad on page 39 from AutoCASE Technology.  They have
  1384. a product called "AutoFLOW-FORTRAN" that lists for $1,995.
  1385. It claims to automatically document your existing source code.
  1386. AutoCASE's number is 408-446-2273.
  1387.  
  1388.       On page 93 is an ad from POWERLINE Software Inc.
  1389. Their number is 800-257-5773, 206-623-9204.  They offer
  1390. a product called SOURCE PRINT+, which they call a code
  1391. management tool with "multi-style formatting with structured
  1392. code blocking."
  1393.  
  1394. They have a Fortran/Basic version for $169, and a Delux
  1395. Multi-language version for $249.  This program is for
  1396. DOS (MS-DOS presumably) Windows, and OS/2.
  1397.  
  1398. Hope this helps.
  1399.  
  1400. --
  1401. Dave Appel
  1402. The Grafted Branch BBS
  1403. 317-881-4369
  1404. internet: dappel@grafted.UUCP
  1405. uucp: ..!uunet!grafted.UUCP!dappel
  1406.  
  1407. Hindsight/Fortran
  1408.  
  1409.         Summary:
  1410.  
  1411.     Features include the ability to draw an interactive structure
  1412.     chart and display coverage, software complexity and
  1413.     performance information on the structure chart. There are also
  1414.     code tracing features, for instance 3 logic diagrams are
  1415.     produced. Common blocks can be traced through the structure
  1416.     charts, including specific variables within common blocks.
  1417.     Hindsight is excellent for documentation, code inspection, and
  1418.     bringing new software engineers up to speed on new code.
  1419.  
  1420. For more information or a free demo copy, contact:
  1421.  
  1422. Rich Fienberg,  National Account Manager
  1423. Advanced Software Automation, Inc.
  1424. 3130A Coronado Dr
  1425. Santa Clara, 95054
  1426.  
  1427. Phone: 408 492-1668  Fax: 408 492-1669
  1428. Free Seminars Fridays 2-4pm
  1429.  
  1430. Email: rich@hindsight.com
  1431.  
  1432. Alternative contact (if Dan cannot be reached:
  1433.                 support@hindsight.com
  1434.  
  1435. Other tools:
  1436.  
  1437.               Refine/FORTRAN  ("re-engineering tool")
  1438.         Reasoning Systems Inc
  1439.         415 494 6201
  1440.  
  1441.         pub/fortran/fxref.tar.Z from biome.bio.ns.ca.
  1442.         create cross reference of a FORTRAN program.
  1443.  
  1444.         CLEAN77 available from Purdue University.
  1445.         Mail Greg Flint (afc.klaatu.cc.purdue.edu) for more info.
  1446.  
  1447.         There is a program called TIDY that is available via
  1448.         FTP from simtel20  pub/msdos/fortran/tidy621.zip on
  1449.         oak.oakland.edu
  1450.  
  1451.  
  1452.  
  1453. ************************************************************************
  1454.  
  1455. Cadre Teamwork
  1456.  
  1457. Cadre Technologies Inc.
  1458. Cadre Teamwork is a large suite of integrated CASE tools that run on
  1459. Unix and VAX platforms.  Their core products are structured analysis
  1460. (with real-time extensions) and design, information modeling, and an
  1461. integrated data dictionary.  More recently, they have added many
  1462. extensions, including a C development environment, C and Fortran reverse
  1463. engineering (build a structure chart from source code), testing tools,
  1464. and others.
  1465.  
  1466. 222 Richmond Street
  1467. Providence, RI 02903
  1468. Phone (401) 351-5950   Fax (401) 351-7380
  1469.  
  1470. ~From: lionel@quark.enet.dec.com (Steve Lionel)
  1471. ~Newsgroups: comp.lang.fortran
  1472. ~Subject: Re: Code formatter for FORTRAN
  1473. ~Date: 15 Jun 1994 15:02:38 GMT
  1474. Organization: Digital Equipment Corporation, Nashua NH
  1475. ~Reply-To: lionel@quark.enet.dec.com (Steve Lionel)
  1476.  
  1477.  
  1478. In article <2tn1bf$aod@rcsuna.gmr.com>, jgatowsk@rinhp750.gmr.com
  1479. (Jan Gatowski EN/16) writes:
  1480. |>Does anyone know if there exists a (commercial or freeware) FORTRAN
  1481. |>code indenter/formatter? A friend is faced with revamping a largely
  1482. |>unreadable old code and could use any available tools to render it more
  1483. |>legible.
  1484.  
  1485. While I was at UK DECUS I attended a talk which described a product called
  1486. The FORTRAN Partner which has as its capabilities (according to the
  1487. documemtation I have):
  1488.  
  1489.     Screening: automatically checking whole FORTRAN programs for
  1490.     classes of error not detected by compiler
  1491.  
  1492.     Troubleshooting: analysing programmes interactively to expose
  1493.     problems or inconsistencies
  1494.  
  1495.     Porting: moving code to different FORTRAN environments
  1496.  
  1497.     Standardising: converting code to a consistent style and
  1498.     creating a framework for documentation
  1499.  
  1500.     Optimising: optimising code for speed of execution
  1501.  
  1502. The product is available on the following platforms:
  1503.  
  1504.     Alliant FX80
  1505.     Avalon Vaccelerator AP/30
  1506.     Digital VAX (OpenVMS)
  1507.     Digital Alpha AXP (OpenVMS)
  1508.     HP Risc Processors under Unix
  1509.     IBM PC and compatible systems with minimum 80386 processor
  1510.       and Maths Coprocessor
  1511.     IBM Risc System 6000 under AIX
  1512.     Parsys Supernode under Idris
  1513.     Silicon Graphics MIPS processors under IRIS
  1514.     Sun SPARC and compatible under Solaris and SunOS
  1515.  
  1516. The vendor is:
  1517.  
  1518.     Software Validation Limited
  1519.     PO Box 270
  1520.     Swindon SN4 0TQ
  1521.     England
  1522.     Tel: +44 (0) 793 740002
  1523.     Fax: +44 (0) 793 740974
  1524.  
  1525. A single workstation/PC price is given as 945 Pounds.  I don't know what
  1526. a US price would be.
  1527.  
  1528. One of the claims which impressed me was the ability to understand many
  1529. different syntax variants and convert them to a more standard form.  The
  1530. formatting rules are customizable.  (The optimizations consist of
  1531. inline expansion and loop unrolling.)
  1532.  
  1533. I have not actually tried this product (I just got a demo disc today) and
  1534. this should in no way be considered an endorsement of the product by
  1535. either myself or Digital Equipment Corporation.  However, it looks like
  1536. it would be worth considering for some applications.
  1537. --
  1538.  
  1539. Steve Lionel                      Mail: lionel@quark.enet.dec.com
  1540. SDT Languages Group               WWW:  http://www.digital.com/info/slionel.html
  1541. Digital Equipment Corporation
  1542. 110 Spit Brook Road, ZKO2-3/N30
  1543. Nashua, NH 03062-2698             "Free advice is worth every cent"
  1544.  
  1545.  
  1546. Q13) Why are there aimless debates?
  1547.  
  1548.     There are some  persistent individuals who would like computer systems
  1549.     to work in a fashion somewhat unlike they do now. It seems pointless
  1550.     to debate with them; the debates (in various groups) always take
  1551.     the same form and never result in meaningful dialog.
  1552.  
  1553.     One can usually recognize such by reading a week or so's worth of
  1554.     postings. Sometimes you may have to read for a month to recognize
  1555.     such. When you do, please try to avoid triggering (or responding to)
  1556.     such individuals.
  1557.  
  1558.     Many (if not most) newsreaders support a feature entitled KILL files.
  1559.     As you recognize individuals, you may wish to put them into your
  1560.     local kill file. For example, the style employed by GNUS:
  1561.  
  1562.     (gnus-kill "From" "hrubin@pop.stat.purdue.edu")
  1563.     (gnus-kill "Subject" "test")
  1564.  
  1565.     the first kills off all postings from the named individual,
  1566.     the second kills off all postings including the beloved "test" string.
  1567.     See your local NewsGod for details suitable for your local system.
  1568.     
  1569. Q14) How do I call f77 from C (and visa versa)
  1570.      This is quite platform dependent. For Suns see the FORTRAN User's
  1571.      Guide, Chapter 14.
  1572.  
  1573.     There is a package available from usenet which attempts to make
  1574.     this "quick and easy" for a wide range of platforms:
  1575.  
  1576. Host ftp.germany.eu.net
  1577.  
  1578.     Location: /newsarchive/comp.sources.misc/volume20
  1579.       DIRECTORY drwxr-xr-x        512  Jul  7 1993  cfortran
  1580.  
  1581. Host ftp.sunet.se
  1582.  
  1583.     Location: /pub/usenet/comp.sources.misc/volume20
  1584.       DIRECTORY drwxrwxr-x        512  May 28 1993  cfortran
  1585.  
  1586. Host ftp.wustl.edu
  1587.  
  1588.     Location: /usenet/comp.sources.misc/volume20
  1589.       DIRECTORY drwxr-xr-x       8192  Oct 30 15:09  cfortran
  1590.  
  1591. Host halcyon.com
  1592.  
  1593.     Location: /dec/.0/usenet/comp.sources.misc/volume20
  1594.       DIRECTORY dr-xr-xr-x        512  Jul  8 1993  cfortran
  1595.  
  1596. Host lth.se
  1597.  
  1598.     Location: /pub/netnews/sources.misc/volume20
  1599.       DIRECTORY drwxr-xr-x        512  Jun  7 1993  cfortran
  1600.  
  1601. Host math.mps.ohio-state.edu
  1602.  
  1603.     Location: /pub/archives/comp.sources.misc/vol20
  1604.       DIRECTORY drwxrwxr-x        512  Jun  2 1993  cfortran
  1605.  
  1606.  
  1607.    It is on many other sites (around the world) too. See archie if
  1608.    you need other pointers.
  1609.  
  1610.    For some systems, you have to initialize a runtime system explicitly
  1611.    if you call a different language, and stopping execution from the
  1612.    other program may not work.
  1613.  
  1614.     The most recent version of cfortran.h is available via anon. ftp at
  1615.     zebra.desy.de.
  1616.  
  1617. ;;;;
  1618.  
  1619.  --From: vankemme@imec.be (Rudi Vankemmel)
  1620. ------------------------------------------------------------------------
  1621. Yongtao Chen (yongtao@watnow.uwaterloo.ca) wrote:
  1622. : .......
  1623. :      *  How to call NAG Fortran Library with C (under Unix)  ? *
  1624.  
  1625. :      We have a NAG Fortran Library on our machine but I do not
  1626. :      know how to call them in my C program.  Can anybody give
  1627. :      me some advice about how to do this?
  1628.  
  1629.  Hello,
  1630.   we have some programs written in C calling the NAG library (which
  1631.   is written in Fortran). There are a number of
  1632.   important things you must be aware of:
  1633.  
  1634.   1) Fortran uses a column wise storage of matrices while C stores them
  1635.      row wise. This means that when you want to parse a matrix from your
  1636.      C-program to the NAG (-fortran-) routine you must transpose the matrix
  1637.      in your program before entering the routine. Of course, any output
  1638.      from such a routine must be transposed again.
  1639.  
  1640.      If you ommit this step, then probably your program will run (because
  1641.      it has data to compute on) but it will generate wrong answers.
  1642.  
  1643.      B.T.W. if you have the Fortran source code (of any routine) then
  1644.      on some platforms you may use compiler directives specifying
  1645.      that the Fortran compiler must use row wise storage.  Some platforms
  1646.      support these directives. However watch out with this if you call
  1647.      the same routine from another Fortran routine/program.
  1648.  
  1649.   2) Your Fortran compiler may add an underscore "_" to the routine name
  1650.      in the symbol table e.g. subroutine example(..,..,..) becomes
  1651.      example_ in the table. Hence in the calling C-program/routine
  1652.      you must add a trailing underscore ! Otherwise the loader will complain
  1653.      about an undefined symbol "example" while "example_" is loaded.
  1654.      However, check your compiler for this. For example the Fortran compiler
  1655.      on VAX-VMS systems does NOT add a trailing underscore (there watch out
  1656.      with the fact that the VAX-Fortran compiler translates everything
  1657.      in uppercase).
  1658.  
  1659.   3) Fortran passes its variables by reference. This means that you MUST
  1660.      give adresses in your calling C-program (i know, this is a stupid
  1661.      remark but it is too often forgotten (my experience ....)).
  1662.  
  1663.   4) Watch out especially with float's and double's. Make sure that the
  1664.      size of the variable in the calling program is identical to the size
  1665.      in the Fortran routine e.g.  double <----> real*8, float <---> real
  1666.      This is extremely important on machines with little endian byte
  1667.      ordening. Parsing a float (C-routine) to a real*8 (Fortran) number
  1668.      will not generate SEGV but give wrong results as the data is parsed
  1669.      wrongly.
  1670.  
  1671.   5) Remember that the array index in Fortran starts at 1 while in C
  1672.      this is at index 0; hence a parsed array fortran_array[1:100]
  1673.      must be used in the C-routine/program as c_array[0:99].
  1674.  
  1675.   Good luck with it !!
  1676. -------------------------------------------------------------------------------
  1677.   Rudi Vankemmel                      | These are my opinions, not those of
  1678.   IMEC vzw. - ASP division            | my employer, so don't take them away
  1679.   Process and Device Modelling group  |________________________________________
  1680.   Kapeldreef 75                            phone: (32)-(0)16/28 13 37
  1681.   3001 Leuven                              fax:   (32)-(0)16/28 12 14
  1682.   Belgium                                  email: vankemme@imec.be
  1683. -------------------------------------------------------------------------------
  1684.  
  1685. another post:
  1686.  --From: beardsl@mepsi.mobil.com (Reginald Beardsley)
  1687.  
  1688. I do a lot of this.  The following is true on the following machines.  I cannot
  1689. say about others.
  1690.  
  1691. Sun 3 & 4
  1692. IBM RS/6000
  1693. SGI
  1694. DECstation
  1695. Intergraph Clipper (Apogee & Green Hills compilers)
  1696. H-P 7xx
  1697.  
  1698. 1) If possible, do not pass strings to FORTRAN from C or vice versa.
  1699.  
  1700. 2) Do not mix I/O on the same file descriptors.
  1701.  
  1702. 3) Do all your math in FORTRAN, and all the rest in C if at all possible.
  1703.  
  1704. 4) NEVER ever attempt to write the equivalent of a FORTRAN function that returns
  1705.    a character variable in C.  Life is too short for the suffering it causes.
  1706.  
  1707. 5) If you do ANY I/O in FORTRAN, you MUST use a FORTRAN main program.
  1708.  
  1709. 6) FORTRAN always passes pointers.
  1710.  
  1711. 7) FORTRAN passes string lengths BY VALUE in the order the strings appear in the
  1712. argument list.  These do NOT appear in the FORTRAN argument list, but will
  1713. appear in the C argument list.
  1714.  
  1715. 8) You will need to take care of nulls and blanks spaces explicitly if you ignor
  1716.  
  1717. 9) The Sun FORTRAN compiler used lex and yacc to do the conversion of a run time
  1718. format from a character variable.  If you use lex and yacc either rename the
  1719. variables and functions or partially link before you link to the FORTRAN
  1720. libraries.
  1721.  
  1722. 10) FORTRAN symbols have trailing underscores appended.  Some compilers require
  1723. a compiler flag to get this.  Use it! It makes the code more portable.
  1724.  
  1725. 11) Don't pass structures.  If you must access a structure element, pass a
  1726. pointer through to a routine which passes back the element pointer.
  1727.  
  1728. 12) Don't forget that the storage orders for arrays is opposite and
  1729. transposition is expensive.
  1730.  
  1731. I currently have many lines of code with FORTRAN calling C calling FORTRAN.
  1732. It's not my choice of things to do, but it works well.  Much better than using
  1733. the wrong language for the task.  My only regret is that I'm forced to pass a
  1734. lot of strings between the two languages.
  1735.  
  1736. ------------------------------------------------------------------------
  1737. Reginald H. Beardsley                    Contract Consultant/Programmer
  1738.  
  1739.          Mobil Exploration and Production Technology
  1740.  
  1741. Office: (214)-851-8547                   beardsl@dal.mobil.com
  1742. Home:   (214)-306-3907
  1743.  
  1744. ---------------------------------------------------------------------------
  1745.  
  1746. followup to first post:
  1747.  --From: andrew@rentec.com (Andrew Mullhaupt)
  1748.  
  1749. In article <C9JnIF.Mzp@bernina.ethz.ch> brech@vision.ethz.ch (Christian Brechbue
  1750.  
  1751. >It is important that you know what's happening when Fortan and C access
  1752. >array elements.  But I never had to perform any "transposition" step in a
  1753. >program.  You just have to read the definitions the other way.  When the
  1754. >manual says   A(j+1,i+1)  I understand   this means  a[i][j]  in C, etc.
  1755.  
  1756. This is true enough, but there are times when you don't want to modify
  1757. already existing FORTRAN and C you may have to write a transposition wrapper.
  1758.  
  1759. This can be advisable for reasons of clarity (i.e. keeping the documentation
  1760. the code and the math in sync.) and for reasons of performance.
  1761.  
  1762. Later,
  1763. Andrew Mullhaupt
  1764.  
  1765. ;;;;
  1766.  
  1767. Most vendors have surprisingly complete documentation of this sort of
  1768. thing ... if one troubles to look for it. There is, for example, an
  1769. entire chapter in the SunPro Fortran documentation <khb>
  1770.  
  1771.  
  1772.  
  1773.  
  1774. Q15) What constitutes good FORTRAN style?
  1775.  
  1776. One rendition of a FORTRAN 77 style guide is available through anonymous
  1777. ftp from ics.uci.edu (128.195.1.1).  To retrieve (please note that it's
  1778. not really "anonymous", that's just the Name that you'll be using):
  1779.  
  1780. % ftp ics.uci.edu
  1781. anonymous
  1782. <enter your e-mail address at Password: prompt>
  1783. cd pub/levine
  1784. ascii
  1785. get F77_Style_Guide
  1786. bye
  1787.  
  1788. If you can't access this site directly, please send an e-mail request to
  1789. levine@ics.uci.edu (BITNET: levine@uci, UUCP: ...!uunet!ucivax!levine).
  1790.  
  1791. Q16) For whatever reasons, I want to translate my Fortran into C.
  1792.     What tools are available?
  1793.  
  1794.     f90 from NAG, see above
  1795.     f2c see above.
  1796.  
  1797.     FORTRAN=C=FORTRIX=Rapitech Rapitech (914) 368-3000
  1798.     FORTRAN=C=FOR_C=Cobalt Blue  404 518 1116
  1799.     FORTRAN=C=PROMULA.FORTRAN=Promula (614) 263-5512
  1800.  
  1801. Q17) For whatever reasons, I want to translate my existing C code
  1802.      into Fortran. What tools are available?
  1803.  
  1804. Regretably none. This is indeed unfortunate, as even a limited
  1805. translator could help with typical C header files.
  1806.  
  1807. Q18) What is preprocessing, how can it help? How can it hurt?
  1808.  
  1809. Preprocessing often refers to usage of a Macro-prepressor upon ones
  1810. source code prior to compilation.
  1811.  
  1812.        How can this help?
  1813.  
  1814. It can make it easier to move code between machines.
  1815.  
  1816.        How can this hurt?
  1817.  
  1818. It can cause difficulties in compilation of the processed code; most (if
  1819. not all) macro-preprocessors know nothing about Fortran syntax and
  1820. code layout rules. So, a common problem is that after preprocessing
  1821. some text may be lost past "sacred" column 72. Those working with
  1822. compilers that optionally compile *past* line 72 should probably
  1823. employ that option when using a preprocessor.
  1824.  
  1825. Common prepressors are: cpp, m4, and ratfor. Many sites have their
  1826. own custom prepressors. Basic functions are:
  1827.  
  1828.     1) definition of a symbol
  1829.     2) conditional code selection based on a symbol
  1830.     3) substition of a symbol by its definition
  1831.  
  1832. Traditional BSD Unix f77 processors treat a file named foo.F (as
  1833. opposed to foo.f) as one that should be run through cpp prior to
  1834. compilation "automatically".
  1835.  
  1836. Q19) How can I convert an existing FORTRAN 77 program to the free form
  1837.      source of Fortran 90?
  1838.  
  1839. Source code conversion program from ftp
  1840. ---------------------------------------
  1841.  
  1842.    Many people who start to code in Fortran 90 prefer to do so
  1843. using the new, less restictive, source form. However, a problem
  1844. arises when wanting to modify old FORTRAN 77 code while sticking
  1845. to the new style. To help in this situation, a source code conversion
  1846. program has been written (and well tested) and made availble by
  1847. anonymous ftp.
  1848.  
  1849.    Apart from the conversion, the program can:
  1850.  
  1851.        ensure that blanks are used correctly in the code as they are
  1852.        significant with the new source form;
  1853.  
  1854.        indent DO-loops and IF-blocks;
  1855.  
  1856.        replace CONTINUE by END DO, where appropriate;
  1857.  
  1858.        add subprogram names to END statements;
  1859.  
  1860.        change non-standard length specification syntax,
  1861.        like INTEGER*2, to the
  1862.        Fortran 90 equivalent, in all contexts (type statements, FUNCTION
  1863.        statements, and IMPLICIT statements);
  1864.  
  1865.        produce an interface block automatically from the source code of a
  1866.        procedure - useful to the library developer when wishing to use
  1867.        this important new facility with an existing library.
  1868.  
  1869.    The source code can be obtained by anonymous ftp to
  1870. jkr.cc.rl.ac.uk (130.246.8.23). When prompted for a userid, reply with
  1871.  
  1872.    anonymous
  1873.  
  1874. and give your name as password. The directory is /pub/MandR
  1875. and the file name is convert.f90.
  1876.  
  1877.  
  1878.                            Mike Metcalf
  1879.                            (metcalf@cernvm.cern.ch)
  1880.  
  1881.  
  1882. Q20) Who creates these silly standards anyway?
  1883.  
  1884. Typically X3J3. X3J3 is an ANSI subcommittee dedicated to Fortran. WG5
  1885. is the ISO counterpart. WG5 owns responsibility for Fortran on an
  1886. international basis. WG5 has previously tasked X3J3 to do the work.
  1887. This arrangement continues.
  1888.  
  1889. WG5 is composed of Fortran users, vendors, and academics from several
  1890. ISO supporting nations. Delegates represent *their*countries* not
  1891. their companies; so several delegates from a single company is
  1892. permitted.
  1893.  
  1894. ANSI rules prohibit multiple voting delegates from the same company.
  1895. X3J3 is composed of users (aerospace, government labs, military, DECUS,
  1896. railroads, oil to name a few), vendors (IBM, CRI, Sun, Convex, DEC,
  1897. UNISYS, to name a few) and the odd academic (oxford, yale, liverpool, to
  1898. name a couple). Members need not be US citizens nor must their company
  1899. be US domiciled. Being a member of a standards group is typically
  1900. involves non-trivial work. To be effective, one should plan on at
  1901. least 8 weeks of time per year (those who are really doing the hard
  1902. work do far more). This time commitment is typically far more
  1903. expensive than the travel and membership costs.
  1904.  
  1905. X3J3 meetings are open to the public. There are typically 4 meetings a
  1906. year, typically 3 are in the US and 1 *may* be overseas (to precede or
  1907. follow the WG5 plenary session). Membership fees are levied by ANSI,
  1908. and are on the near order of $600 ($300ish cast as an ISO "tax", but
  1909. mandatory for all). In addition, attendees to a particular X3J3
  1910. meeting pay a "meeting fee" which covers reproduction costs, snacks
  1911. and etc. The meeting fee has been about $100 for the last several meetings.
  1912.  
  1913. WG5 has established various goals and targets for future work. Roughly
  1914. speaking 5yrs rather than 13years are the targets for future work.
  1915.  
  1916. Current work projects include cleanup and interpretations of Fortran
  1917. (90), features for future versions of the standard (e.g. parallel
  1918. processing, "object-oriented" technologies, etc.). In addition to work
  1919. done directly by X3J3, there is work on standardized modules, and OS
  1920. bindings taking place in other organizations. X3J3 would like to keep
  1921. track of such efforts, those involved are invited to inform X3J3 early
  1922. in their development efforts if possible. X3J3 is currently working
  1923. with X3H5, DIN (varying string character) and tracking the efforts of
  1924. HPFF.
  1925.  
  1926. New members are always welcome. Visitors are also; though it is very
  1927. hard to get a good grip on things in only one meeting!
  1928.  
  1929. Contact the X3J3 chair for more information:
  1930.  
  1931.     jwagener@trc.amoco.com   chair
  1932.  
  1933. Upcoming meetings are:
  1934.  
  1935.      April 17-21 1995   WG5 Tokyo
  1936.      April 24-28 1995   X3J3 Maui
  1937.      August 7-11 1995   X3J3 Tentative date, location
  1938.      Nov   13-17 1995   X3J3 San Deigo
  1939.  
  1940. X3J3 working papers are often available via ftp.
  1941.      ftp.ncsa.uiuc.edu, directory x3j3.
  1942.  
  1943.  
  1944. Q21) How can I read my VAX binary data somewhere else?
  1945.  
  1946.      Some vendors provide bulit in methods (DEC provides this via
  1947.      special options on the OPEN statement). Others provide library support
  1948.      (on SPARC products, with the SunPro compilers, checkout convert_external)
  1949.      In addition, Accerl8 provides a commerial tool. Contact:
  1950.  
  1951.     Robert Hickler                            Tel   (303) 863-8088
  1952.     Accelr8 Technology                        Email robert@accelr8.com
  1953.  
  1954.      for more information.
  1955.  
  1956. The following three Q's and A's based on email from:
  1957.     ecmtwhk@ccu1.aukuni.ac.nz (Thomas Koenig)
  1958.  
  1959. Q22) My F77 program compiled ok on a <system1>, but gives me heaps of
  1960.      syntax errors on a <system2>. What's wrong?
  1961.  
  1962.      Most likely, the program was written with a line length greater than
  1963.      72. If your compiler supports it, turn on the option for greater
  1964.      line length (e.g. -e is not uncommon) ; otherwise, split up the
  1965.      lines by hand, or via one of those pretty-printers/restructing
  1966.      tools mentioned above.
  1967.  
  1968. Q23) My F77 program ran ok on a <system1>, but on a <system2> it just gives
  1969.      me strange results. What's wrong?
  1970.  
  1971.      There are different reasons why this could be. Possibly, your program
  1972.      violates the standard in some way which is not caught by the compiler
  1973.      on <system1>.
  1974.  
  1975.      Many programs rely on variables to be initialized to zero when a
  1976.      subroutine or function is first called, and also on the retention
  1977.      of values between calls. While many compilers (VAX/VMX and IBM VS,
  1978.      for example) exhibit this behaviour, compilers on newer
  1979.      architectures often fill variables with garbage on each new
  1980.      function call. This is permitted, according to the standard.
  1981.  
  1982.      Initialize variables explicitly, and put the variables which you need
  1983.      to keep across function calls into SAVE statements. Your compiler may
  1984.      have an option to trap unititialized variables; use that to find the
  1985.      trouble spots. Alternatively, compile using a flag which forces
  1986.      static allocation of all variables.
  1987.  
  1988.      Another problem might be that the accuracy of REAL and DOUBLE
  1989.      PRECISION differs between different platforms; that can cause
  1990.      roundoff error to wipe out your results or your program to go
  1991.      into endless loops.
  1992.  
  1993.      Yet another (and much more subtle) problem can occur if a lot of
  1994.      formatted I/O is employed. The conversion from internal to
  1995.      external representations can introduce very significant errors;
  1996.      much worse on some platforms than others (doing correctly rounded
  1997.      base conversion is expensive).
  1998.  
  1999.      There are, of course, lots of other possibilities, these are just
  2000.      a starting point.
  2001.  
  2002. Q24) Is there a WEB for Fortran (and what is web anyway)?
  2003.  
  2004.      FWEB is available via anonymous ftp; use archie(above) to
  2005.      determine current location(s).
  2006.  
  2007.      As for the more general question, what is WEB .... WEB is a
  2008.      "literate" programming system created by Knuth (he of reference
  2009.      book fame, and TeX fame, and etc.). It permits the programmer to
  2010.      write code and documentation together. WEB takes the "high level
  2011.      code and documentation" and creates real publishable
  2012.      documentation (using TeX or LaTeX) and compilable code. WEB
  2013.      versions for many languages are available.
  2014.  
  2015.      Some features of FWEB are:
  2016.  
  2017.       1)  FWEB is a pretty printer.  Code is pretty printed by
  2018.           sending the FWEB file through "fweave" and "TeX". fweave
  2019.           inserts TeX control characters around the code for
  2020.           pretty printing.  Fweave also collects a
  2021.           cross-referenced index of *all* identifiers and prints
  2022.           them at the end of the code listing.
  2023.  
  2024.       2)  FWEB has built in macro preprocessing, which *does*
  2025.           understand FORTRAN syntax and code layout rules.  A line
  2026.           extending beyond column 72 will be broken into proper
  2027.           continuation lines.
  2028.  
  2029.       3)  FWEB is multilingual: it understands C,C++,f77,f90, and
  2030.           RatFor.
  2031.  
  2032.  
  2033.  
  2034. Q25) Where can I find coded BLAS (and what are coded BLAS?)
  2035.  
  2036. The BLAS (basic linear algebra software) comes in several flavors:
  2037. BLAS-1, -2, and -3. These can be described as scalar, vector and
  2038. matrix-matrix levels. "Coded" BLAS are either hand coded in assembler,
  2039. or at least tweaked for a given machine. Some vendors provide these,
  2040. some are provided on the net (see archie) and some are marketed by
  2041. various commercial organizations.
  2042.  
  2043. In addition, it should be noted that BLAS-3 is very amenable to
  2044. parallel processing. Done cleverly, this could be done by a network of
  2045. processors over a net. DSS markets just such an
  2046. implementation. Contact the folks below. The following material is their
  2047. marketing blurb
  2048.  
  2049. DSSLIB is the fastest BLAS[123], LAPACK, LINPACK, FFTPACK, and
  2050. VFFTPACK available for the entire SPARC hardware and software line.
  2051. DSSLIB is based on LAPACK 2.0, but is backward compatible with all
  2052. previous LAPACKs.  Single-CPU optimization typically yields 2x-4x over
  2053. Netlib code.  MP computation yields significantly better than that,
  2054. reaching almost half a gigaflop on a top-of-the-line Sun MP machine and
  2055. exceeding even that on SPARC MP supercomputers.  Interfaces are shipped
  2056. with DSSLIB to allow users of IMSL/Math, Rogue Wave's math libraries, IDL
  2057. from Research Systems, and others to optimize and parallelize their
  2058. applications without making source code changes.
  2059.  
  2060. The company can be contacted at:
  2061.   Dakota Scientific Software, Inc.
  2062.   2241 Cedar Drive
  2063.   Rapid City, SD  57702-3245
  2064.  
  2065.   sales@scisoft.com
  2066.  
  2067.   +1.800.641.8851  voice
  2068.   +1.605.394.8851  voice
  2069.   +1.605.348.9623  fax
  2070.  
  2071.  
  2072.  
  2073.  
  2074. Q26)  How common is DO ... END DO
  2075.  
  2076.       It is very common; and of course is part of Fortran 90.
  2077.       Compilers claimed to *not* support it (much shorter list this
  2078.       way)
  2079.  
  2080.               1) Salford ftn77/Primos version
  2081.         2) Prime f77 compiler
  2082.         3) Microsoft Fortran for CP/M 8080/Z80 machines
  2083.         4) Fujitsu VPxxx UXP/M compiler
  2084.  
  2085.  
  2086. Q27) Where can I learn more about the history of Fortran?
  2087. ~From: metcalf@apofort.cern.ch (Michael Metcalf )
  2088. The history of Fortran is documented in:        
  2089.  
  2090. Annals of History of Computing, 6, 1, January, 1984 (whole issue).
  2091.  
  2092. Programming Systems and Languages (S. Rosen ed.), McGraw Hill, 1967, pp 29-47
  2093.     (this is Backus's original paper).        
  2094.  
  2095. History of Prorammining Languages (R.L. Wexelblat ed.), Academic Press, 1981,
  2096.               pp 25-74.    
  2097.  
  2098. A summary appears in vol. 5 of the Encyclopedia of Science and Technology,
  2099. Academic Press, 1986, under 'Fortran'.
  2100. and in Chapter 1 of Fortran 90 Explained (Oxford, 1990).
  2101.  
  2102. Q28) Fortran text editors?
  2103.  
  2104. Thomas Koenig, ig25@rz.uni-karlsruhe.de, ig25@dkauni2.bitnet
  2105.       If you use EMACS, you can use M-x fortran-mode.  An extended
  2106.       version, which includes the fortran-auto-fill-mode minor mode, is
  2107.       available via anonymous ftp from hallc1.cebaf.gov [129.57.32.62]
  2108.       in the directory /emacs.
  2109.  
  2110. More generally, Unipress emacs has a Fortran mode. There are XEDIT,
  2111. BRIEF, TPU and EDT clones available on many common platforms these
  2112. days.
  2113.  
  2114. ~From: kafe8@central.susx.ac.uk (Bernd R Eggen)
  2115.  
  2116. Torbjorn Einarsson has made available Fortran 90 modes for Emacs 19.x
  2117. (and xemacs). They are available e.g. from the Mailbase list for Fortran 90,
  2118. comp-fortran-90 from 12/Jan/1995 onwards. I would like to express my gratitude
  2119. to Torbjorn Einarsson for making this valuable tool publicly accessible.
  2120.  
  2121. Files can be retrieved either via anonymous ftp to mailbase.ac.uk,
  2122. directory /pub/lists/comp-fortran-90/files/, by Gopher and W3 (World
  2123. Wide Web, URL (Universal Resource Locator)
  2124. gopher://nisp.ncl.ac.uk/11/lists-a-e/comp-fortran-90/files)
  2125. or by sending an e-mail to  mailbase@mailbase.ac.uk, containing the command
  2126. send <listname> <filename> (e.g. send comp-fortran-90 f90.el).
  2127.  
  2128.  
  2129.  
  2130. ~From: davis@pacific.mps.ohio-state.edu ("John E. Davis")
  2131.  
  2132. In article <KHB.94Apr4191416@chiba.Eng.Sun.COM> khb@chiba.Eng.Sun.COM (chiba)
  2133. writes:
  2134.    Q28) Fortran text editors?
  2135.    [...]
  2136.    More generally, Unipress emacs has a Fortran mode. There are XEDIT,
  2137.    BRIEF, TPU and EDT clones available on many common platforms these
  2138.    days.
  2139.  
  2140. In addition, JED has a Fortran mode that is very much like the emacs Fortran
  2141. mode.  JED also has a very nice EDT emulation and runs on MSDOS, Unix, VMS, as
  2142. well as DEC Alpha systems.
  2143.  
  2144. The latest version of JED is on amy.tch.harvard.edu in pub/jed.  Archie will
  2145. show it elsewhere but these versions are somewhat dated.  The latest version
  2146. is 0.95.  Despite the fact that the version number is below 1.0, the editor is
  2147. VERY stable--- the version is below 1.0 because I feel that the documentation
  2148. is not quite up to 1.0 levels.
  2149.  
  2150. Here is a partial list of features:
  2151.  
  2152.     runs under Unix, VMS, and IBMPC (all versions)
  2153.     X Window version also available
  2154.     emacs*, wordstar*, EDT* emulation
  2155.     C, Fortran*, tex*, text editing modes
  2156.     C-like extension language called S-Lang.
  2157.     user configurable (bind keys, write functions, etc....)
  2158.     region highlighting (even on character based terminals!)
  2159.     Syntax highlighting in Beta test (even on character based terminals)
  2160.     8 bit clean, edit binary files too.
  2161.     rectangular (box) cut/paste
  2162.     backup and autosave files
  2163.     full undo
  2164.     regular expressions
  2165.     GNU Emacs compatable info reader*
  2166.     calendar*
  2167.     mail*, elm like rmail* (rmail new in 0.95 version)
  2168.     dired directory editor*
  2169.     automatic horizontal pan/scroll  (configurable)
  2170.     parenthesis matching/blinking
  2171.     filename, buffername, function name completion
  2172.     Menu driven for novice users*
  2173.     incremental search/replace*
  2174.     sorting
  2175.     no hardcoded buffer/line limits
  2176.     multiple windows and buffers
  2177.     keyboard macros with macro query feature.
  2178.     buffer mode lines are configurable, e.g., display time, line number, etc...
  2179.     ispell*
  2180.     shell commands and ``interactive'' shell*
  2181.  
  2182. * Note:  these functions are written in the extension language.
  2183.  
  2184.  
  2185. --
  2186.      _____________
  2187. #___/John E. Davis\_________________________________________________________
  2188. #
  2189. # internet: davis@amy.tch.harvard.edu
  2190. #   bitnet: davis@ohstpy
  2191. #   office: 617-735-6746
  2192. #
  2193.  
  2194. Q29) What are ENCODE and DECODE statements, and how are they translated to
  2195.      standard Fortran? How can I convert numbers to character strings
  2196.      (and vice-versa)?
  2197.  
  2198. ENCODE and DECODE are vendor extensions to Fortran (invented in the
  2199. sixties, long before X3.9-1978 added internal I/O to the language)
  2200. which are most often used to convert data between numeric and
  2201. character representations.  They may be viewed as formatted writes to
  2202. (ENCODE) or reads from (DECODE) memory.  The standard-conforming
  2203. alternatives are internal write and internal read statements
  2204. respectively.
  2205.  
  2206. For example,
  2207.      INTEGER MONTH, DAY, YEAR
  2208.      MONTH = 7
  2209.      DAY = 4
  2210.      YEAR = 93
  2211. C    FORM THE STRING  7/ 4/93 IN VARIABLE "DATE"
  2212.      ENCODE (8,10,DATE) MONTH,DAY,YEAR
  2213.  10  FORMAT (I2,'/',I2,'/',I2)
  2214.  
  2215. The above can be translated as "write 8 characters, formatted according to
  2216. format 10, storing the results in variable DATE, and using the contents of
  2217. variables MONTH, DAY, and YEAR as the data to write."
  2218.  
  2219. A DECODE statement would be used to reverse the process (extract the
  2220. variables MONTH2, DAY2, and YEAR2 from the string DATE).  Thus:
  2221.  
  2222.      INTEGER MONTH2, DAY2, YEAR2
  2223.      DECODE (8,20,DATE) MONTH2, DAY2, YEAR2
  2224.  20  FORMAT (I2,1X,I2,1X,I2)
  2225.  
  2226. Conversion of ENCODE/DECODE to standard Fortran-77 is not difficult.  The
  2227. critical thing to remember is that the variable to be written to (ENCODE)
  2228. or read from (DECODE) must be a CHARACTER variable which is long enough to
  2229. contain the string.  The first number within the parentheses (in this case
  2230. 8) is the minimum length to use in a type declaration.  Thus a standard-
  2231. conforming equivalent of the above example is:
  2232.  
  2233.      CHARACTER*8 DATE
  2234.      INTEGER MONTH, DAY, YEAR
  2235.      INTEGER MONTH2, DAY2, YEAR2
  2236.      MONTH = 7
  2237.      DAY = 4
  2238.      YEAR = 93
  2239.      WRITE (DATE,10) MONTH, DAY, YEAR
  2240.  10  FORMAT (I2,'/',I2,'/',I2)
  2241.      READ (DATE,20) MONTH2, DAY2, YEAR2
  2242.  20  FORMAT (I2,1X,I2,1X,I2)
  2243.  
  2244. Although the above example used integers, any other data type may also be
  2245. used.
  2246.  
  2247. <forags@nature.berkeley.edu (Al Stangenberger)>
  2248.  
  2249. Q30) Tell me about Parallel Fortran dialects, what are they,etc.
  2250.  
  2251. ~From: lfm@pgroup.com (Larry Meadows)
  2252.  
  2253. spencer@glint.mcc.com (Steve Spencer) writes:
  2254.  
  2255. >We are trying to decide what parallel FORTRAN environment
  2256. >to port to a MIMD multiprocessor that we are building
  2257. >for ARPA. We are looking for information on the follwing
  2258. >environments:
  2259.  
  2260. >    FORTRAN90
  2261. >        HPF (High Performance FORTRAN from Rice U. I think)
  2262. >    FORTRAN D
  2263. >        PVM (works with F77 to provide a parallel env.)
  2264.  
  2265. >Does anyone know where we can get information on the
  2266. >above programming environments or any others that may
  2267. >be appropriate?
  2268.  
  2269. Fortran90 is an ANSI and an ISO standard.  The usual reference is
  2270. Fortran 90 Handbook, published by McGraw Hill.  Several vendors provide
  2271. Fortran 90 translators and/or compilers.
  2272.  
  2273. HPF
  2274. ---
  2275.   High Performance Fortran (HPF) is a language for programming
  2276. massively parallel architectures. It lets the user insert directives
  2277. for code and data distribution among the processors in the
  2278. (Fortran 90) code.
  2279. Electronic copies of HPF draft specification are available by anonymous
  2280. FTP from the following sources:
  2281.  Machine name            File name
  2282.  titan.cs.rice.edu       public/HPFF/draft/hpf-v10-final.tar
  2283.  titan.cs.rice.edu       public/HPFF/draft/hpf-v10-final.tar.Z
  2284.  titan.cs.rice.edu       public/HPFF/draft/hpf-v10-final.ps
  2285.  titan.cs.rice.edu       public/HPFF/draft/hpf-v10-final.ps.Z
  2286.  think.com               public/HPFF/hpf-v10-final.ps.Z
  2287.  ftp.gmd.de              hpf-europe/hpf-v10-final.ps.Z
  2288.  theory.tc.cornell.edu   pub/hpf-v10-final.ps.Z
  2289.  minerva.npac.syr.edu    public/hpf-v10-final.tar.Z
  2290.  
  2291. Fortran D is a precursor to HPF; as a commercial product it has been
  2292. superceded by HPF, but several academic projects still exist that target
  2293. Fortran D.
  2294.  
  2295. PVM is a message passing library and run-time environment; as such, it
  2296. exists at a lower level than the previous items.  One might imagine an
  2297. HPF compiler that produced FORTRAN77 with calls to PVM.  There is a newsgroup
  2298. on PVM.  It is available through netlib, and possibly from Oak Ridge as
  2299. well.
  2300.  
  2301. Hope this helps.
  2302. --
  2303. Larry Meadows        The Portland Group
  2304. lfm@pgroup.com
  2305. ;;;;
  2306. Q31) Where can I find a f90 tutorial or course?
  2307.  
  2308. Copyright but freely available course material is available from
  2309. Manchester Computer Centre on the World Wide Web with the URL:
  2310.   http://www.hpctec.mcc.ac.uk/hpctec/courses/Fortran90/F90course.html
  2311. The ftp address is ftp.mcc.ac.uk, in the directory /pub/mantec/Fortran90.
  2312.  
  2313. A complete Tutorial is available under WWW with the URL
  2314.       http://asis01.cern.ch/CN/CNTUT/f90/Overview.html
  2315. or via anonymous ftp from cernvm.cern.ch in the directory cnl.200 and
  2316. as the file f90tutor.ps.
  2317. An ASCII copy of this material as a set of slides for a six-hour course
  2318. is available from metcalf@cern.ch.
  2319.  
  2320. Courses are available from:
  2321.  
  2322.    Walt Brainerd, a member of X3J3, also on HPF (walt@fortran.com);
  2323.  
  2324.    PSR (see above);
  2325.  
  2326.    CETech, Inc. (also on HPF)
  2327.    8196 SW Hall Blvd., Ste. 304, Beaverton, Oregon 97008, USA.
  2328.    Phone: (503)644-6106   Fax: (503)643-8425 (cetech@teleport.com).
  2329.  
  2330. European companies offering courses and conversion consultancy are:
  2331.  
  2332.       IT Independent Training Limited, 113 Liscombe, Birch Hill,
  2333.       Bracknell, Berkshire, RG12 7DE, UK
  2334.                    tel. +44 344 860172   fax. +44 344 867992
  2335.  
  2336.       Simulog, attn. Mr. E. Plestan,
  2337.       1 rue James Joule, F-78286 Guyancourt Cedex, France
  2338.                    tel: +33 1 30 12 27 00   fax: +33 1 30 12 27 27
  2339.  
  2340.       CTS, Prinz-Otto Str. 7c, D-85521 Ottobrunn , Germany
  2341.                    tel: +49-89-6083758   fax: +49-89-6083758
  2342.  
  2343.  
  2344.  
  2345. Q32) Where can I get mathematical software
  2346.  
  2347.     There are, of course, many commerical operations which provide
  2348.     high quality software. NAG and IMSL to name just two.
  2349.  
  2350.     netlib and archie (mentioned above) can be used to good effect
  2351.     to find specific freeware (public domain, shareware or mostly freely
  2352.     distributable source).
  2353.  
  2354.     In addition, NASA's COSMIC distributes some government funded
  2355.     software.
  2356.  
  2357.     One particular bit of NASA software, MATH77 a large math
  2358.     library created by numerical analysts at JPL is available from:
  2359.  
  2360.         Language Systems Corp.
  2361.         441 Carlisle Dr.
  2362.         Herndon, VA 22070
  2363.         (800) 252-6479
  2364.         email: langsys@aol.com
  2365.  
  2366. Q33) What is the best Fortran for...
  2367.  
  2368. Such recommendations are, at best, personal opinions. I've <khb>
  2369. tracked some of the discussions and it would appear that
  2370.  
  2371.     a) For the mac, Language Systems
  2372.  
  2373.     800-252-6479 (inside US and Canada)
  2374.     703-478-0181
  2375.     703-689-9593 (fax)
  2376.     703-709-0134 (BBS)
  2377.  
  2378.     langsys (Applelink)
  2379.     langsys (America Online)
  2380.     langsys@aol.com (Internet)
  2381.  
  2382.     Language Systems Corp.
  2383.     100 Carpenter Drive
  2384.     Sterling, VA 20164
  2385.  
  2386.     b) For the PC it is harder. Many like Lahey
  2387.  
  2388.     Lahey Computer Systems, Inc.
  2389.     865 Tahoe Blvd.
  2390.     P.O. Box 6091
  2391.     Incline Village, Nevada 89450
  2392.  
  2393.     Phones: (800) 548-4778
  2394.             (702) 831-2500
  2395.  
  2396.     Fax:    (702) 831-8123
  2397.     BBS:    (702) 831-8023.
  2398.  
  2399.     UUNET: Sales        sales@lahey.com
  2400.            Tech support support@lahey.com
  2401.  
  2402.     Good code generation, good diagnostics, fast compilation, and
  2403.     good support are often quoted as reasons why folks liked LCS.
  2404.  
  2405.  
  2406. Q34) [deleted]
  2407.  
  2408. Q35) What Interval Arithmetic Packages are available?
  2409.  
  2410.  
  2411. ~From: molagnon@marathon.ifremer.fr (Michel Olagnon, Ifremer DITI GO, 98.22.41.4
  2412.  
  2413. The CADNA package implements stochastic arithmetic (a sort of interval
  2414. arithmetic) in Fortran 90 on the top of any standard Fortran 77 program.
  2415. That is, if you have a working Fortran 77 program, you can use CADNA to
  2416. see what results you get with stochastic arithmetic.
  2417.  
  2418. For information on CADNA, or a demo version, contact
  2419. Mr. F. CHAUVET or Mr. BERTHON
  2420. AERO
  2421. 3 Avenue de l'Opera
  2422. 75001 PARIS
  2423. tel: +33 1 44 55 30 80
  2424. fax: +33 1 40 15 95 54
  2425.  
  2426. For information on stochastic arithmetic (similar to interval arithmetic,
  2427. but the intervals are the most probable error bounds instead of the maximum
  2428. bounds), refer to:
  2429.  
  2430. Vignes, Jean, A stochastic arithmetic for reliable scientific computation
  2431. MATCOM 940 - Mathematics and Computers in Simulation 35 (1993) 233-261.
  2432.  
  2433. ~From: ig25@fg30.rz.uni-karlsruhe.de (Thomas Koenig)
  2434. ~Reply-To: Thomas.Koenig@ciw.uni-karlsruhe.de
  2435.  
  2436.  
  2437. You might try the XSC series of languages developed at the Institute
  2438. for Applied Mathematics at the University of Karlsruhe (look at
  2439.  
  2440. http://ma20.rz.uni-karlsruhe.de/~ae08/iam/html/xsc-sprachen.html
  2441.  
  2442. if you've got access to Mosaic), or send mail to
  2443.  
  2444. ae08@rz.uni-karlsruhe.de (Rolf Hammer) for more information.
  2445.  
  2446. I'm fairly sure about Pascal, C, and C++; I also believe IBM sells
  2447. a compiler based and their VS series of compilers.
  2448.  
  2449.  
  2450. ;;;;
  2451.  
  2452. Q36) f90.faq
  2453.  
  2454.  
  2455. ~Subject: Best F90 wishes for 1995
  2456.  
  2457. F90 FAN's : Fortran 90 Frequently Asked about News.
  2458. A Fortran 90 addition to the Fortran FAQ.
  2459.  
  2460. Michel Olagnon - October   1st, 1993.
  2461. Last updated   - December  6th, 1994.
  2462.  
  2463. Send flames and suggestions for improvement to Michel.Olagnon@ifremer.fr
  2464. The current updated version of this FAQ is available as
  2465. ftp://ftp.ifremer.fr/pub/ifremer/fortran90/engfaq.
  2466. It is also on the www at URL:
  2467. http://lenti.med.umn.edu/~mwd/f90-faq.html
  2468.  
  2469.  
  2470. Contents :
  2471. ========
  2472.  
  2473.    1.- Fortran 90 and Fortran 77
  2474.    2.- Available in Fortran 90:
  2475.        Compilers
  2476.        Code re-structurers and converters
  2477. |      Libraries and utilities
  2478.        Tests and Benchmarks
  2479.        Examples and repositories
  2480.        Courses and Consultancy
  2481.    3.- Documentation:
  2482.        Standards
  2483.        Journals
  2484.        Tutorials and other documents
  2485.        Books
  2486.        Articles
  2487.        Other places for help on Fortran 90
  2488.    4.- Fortran 90 Benchmarking
  2489.    5.- Announced, foreseen, and rumours
  2490.    6.- Workshops, seminars, conferences
  2491.    7.- Developments, related languages
  2492.        Standard
  2493.        HPF
  2494.        PVM
  2495.        Parallel Programming
  2496.    8.- Addresses
  2497.  
  2498.  
  2499. 1.- Fortran 90 and Fortran 77:
  2500. ##############################
  2501.  
  2502.   Fortran 90 is, with very few exceptions, a superset of Fortran 77.
  2503. The FAQ of the Usenet group Comp.lang.fortran deals with both
  2504. standards, and may be obtained, like any FAQ, via anonymous ftp from
  2505. rtfm.mit.edu, directory /pub/usenet. It is also available on the WWW
  2506. http://www.cis.ohio-state.edu/hypertext/faq/usenet/fortran-faq/faq.html
  2507.   The present document is an attempt to supplement that FAQ with some
  2508. specific Fortran 90 information.
  2509.   Anyone interested is also invited to join the mailbase list
  2510. comp-fortran-90, by sending an e-mail message to mailbase@mailbase.ac.uk,
  2511. containing as the only line:
  2512. join comp-fortran-90 <firstname> <lastname>
  2513.  
  2514.   The main extensions of Fortran 90 over Fortran 77 are:
  2515.  * array notation (for instance, X(1:N)=R(1:N)*COS(A(1:N)))
  2516.  * dynamic memory allocation (ALLOCATE, DEALLOCATE, ...)
  2517.  * derived types and operator overloading
  2518.  * better declarations, and prototyping possible
  2519.  * MODULES, allowing users to create ``storage pools'',
  2520.     or to define environment
  2521.  * more of modern control structures (SELECT CASE, EXIT, ...)
  2522.  * more of useful intrinsics (date, precision, arrays, ...)
  2523.  * free format source code form
  2524.  
  2525.   ``Pure'' Fortran 77 is F90 compatible. Yet, it is better to convert
  2526. it to a ``mixed'' format, acceptable both as free and fixed source
  2527. form Fortran 90, which only requires replacing C by ! as the comment
  2528. character, to use & as the continuation line character, and
  2529. to append it to the continued line, to remove blanks embedded inside
  2530. constants or identifiers, and to check some intrinsics usage. Most
  2531. of this can be done automatically.
  2532.  
  2533.   Fortran 90 allows the Fortran 77 programmer to write code faster,
  2534. to make it more legible, and to avoid many bugs. For a newcomer to
  2535. programming, it is an opportunity to learn a modern language, with
  2536. most recommended features, and yet to be in line with scientific
  2537. and industrial engineering communities where Fortran is and is going
  2538. to remain for a good while THE favourite language.
  2539.  
  2540. 2.- Available in Fortran 90:
  2541. ############################
  2542.  
  2543. Compilers
  2544. ---------
  2545.   Please note that none of the following is free. There is
  2546.   presently no free F90 compiler, only a verifier by Nag that
  2547.   does not generate executable code.
  2548.  
  2549.   CRAY              CF90 - for Crays YMP and YMP-C90, Superserver
  2550.                            6400 and Sparc Solaris 2.3
  2551.  
  2552.   DEC Fortran 90    V1.1 - for DEC OSF/1 AXP, including HPF extensions.
  2553.  
  2554.   EPC Fortran 90         - for Sparc Solaris 1.X and 2.X, IBM RS/6000,
  2555.                            Intel 3/486 (SVR3&4, Solaris 2.x),
  2556.                            Motorola 88000/100/100 (SVR3&4)
  2557.  
  2558.   Fujitsu                - full compiler for Sparc Solaris 2.x
  2559.  
  2560.   IBM             XLF V3 - full compiler for RISC System/6000
  2561.      + KAP preprocessor  - from KAI, for AIX V3.2 and V4.1
  2562.  
  2563.   Lahey             LF90 - for DOS
  2564.  
  2565.   MicroWay               - for DOS, OS/2, Unix
  2566.  
  2567.   NA Software       F90+ - for 386/486, Sparc, T800, T9000
  2568.  
  2569.   NAG                f90 - uses C as intermediate language
  2570.                            now at rel:2.1, includes HPF extensions
  2571.                            exists in Linux version.
  2572.  
  2573.   Pacific Sierra VAST-90 - uses F77 as intermediate language
  2574.  
  2575.   Parasoft               - uses F77 as intermediate language
  2576.  
  2577.   PGI                    - f90/HPF compiler, for SGI.
  2578.  
  2579.   Salford          FTN90 - PC implementation of NAG f90, direct
  2580.                            generation of object code.
  2581.  
  2582.   NOTE: Some vendors, such as Convex on their machines, offer
  2583.         a number of F90 extensions, for instance array syntax or
  2584.         ALLOCATE instruction.
  2585.  
  2586. Code re-structurers and converters
  2587. ----------------------------------
  2588.   Pacific-Sierra VAST-90 (see article by JKP in Fortran Journal 5/4)
  2589.  
  2590.   FOREST-90, by Simulog
  2591.  
  2592.   NAGWare f90 tools, pretty-printer, declarations standardiser,
  2593.                      precision standardiser, names changer.
  2594.  
  2595.   CONVERT, conversion to F90 free format, proposed by
  2596.                           Mike Metcalf via anonymous ftp on
  2597.                           jkr.cc.rl.ac.uk (130.246.8.23),
  2598.                           file /pub/MandR/convert.f90.
  2599.  
  2600.   ftof90.c, minimal F77 -> F90 conversion, via anonymous ftp on
  2601.                           ftp.ifremer.fr (134.246.150.6),
  2602.                           file pub/ifremer/fortran90/ftof90.c)
  2603.  
  2604. Libraries and utilities
  2605. -----------------------
  2606.  
  2607.   Emacs free-format f90-mode, available from torbjorn@solrt.lps.u-psud.fr
  2608.           (preliminary version). Among the options one finds automatic
  2609.           matching and completion of all end-blocks (for example,
  2610.           indenting a line starting with end, finds the corresponding
  2611.           if/do/module... and checks/fills in the right kind of block
  2612.           and a possible name), it has an automatic fill-function which
  2613.           breaks a line and inserts &-signs (two if inside a string)
  2614.           when a line gets too long, different coloring for different
  2615.           features which is updated with every indent of a line.
  2616.           The most common commands are available via a menu.
  2617.  
  2618.   NAG fl90, numerical and statistical library, Sun 4, Sgi,
  2619.            DECstation, and IBM RISC System/6000.
  2620.  
  2621.   NAG tool components (parser, semantic analyser, tree modification
  2622.                        library and tree flattener).
  2623.  
  2624.   Cray LibSci(tm), numerical library for Crays and Sparc Solaris 2.3
  2625.  
  2626.   IMSL library (Visual Numerics)
  2627.  
  2628.   Syntax verifier extracted from NAG compiler (version 2.1), put into
  2629.            public domain by NAG for Sun 3, Sun 4, Sgi, RS/6000,
  2630.            DECstation, Solaris and Linux.
  2631.   Interactive checking of user's code over www at
  2632.            http://www.nag.co.uk:70/0/Forms/f90_interface.html
  2633.  
  2634.   Lahey has F90 components (manual, array intrinsics, front end,...)
  2635.            that they would like to license to others.
  2636.  
  2637.   CADNA, by professeur Vignes from Universite Pierre et Marie Curie,
  2638.            implements stochastic arithmetic in Fortran 90, and
  2639.            enables monitoring of precision loss and/or numerical
  2640.            instabilities during execution. (Control of Accuracy
  2641.            and Debugging for Numerical Aplications in Fortran)
  2642.            More information available from AERO (see also articles
  2643.            by J. Vignes), or Pr. Chesneaux (chesneaux@masi.ibp.fr).
  2644.  
  2645.  
  2646.   ISO/IEC 1539-2            - Variable length character strings
  2647.  (Draft auxiliary standard)   in Fortran (with a demonstration
  2648.                               of implementation)
  2649.  
  2650.   LAPACK, (minimaly) translated by myself, successfully passed
  2651.           all its tests with NAg-f90 2.0.
  2652.           I aggressively translated single precision Blas,
  2653.           and intend to do the same with other Blas as soon as
  2654.           I have time.
  2655.           Steve Moulton works on LAPACK conversion.
  2656.  
  2657. Tests and Benchmarks
  2658. --------------------
  2659.  
  2660.   NAGware Test suite   - tests for compilers (same as:
  2661.   U_F90_TS Test suite  - from Dr. Brian Smith (University
  2662.                     of New Mexico), marketed by Unicomp and NAG.
  2663.                     Now at release 1.4
  2664.  
  2665.   Lahey Test suite     - F77 & F90 (license agreement)
  2666.  
  2667.   SHAPE Test suite     - 3400 tests of array instructions,
  2668.                          from Spackman & Hendrickson, Inc.
  2669.  
  2670.   Parasoft Test suite  - 1500 tests for compilers
  2671.  
  2672.   Quetzal Benchmark from John K. Prentice, via anonymous ftp on
  2673.                     unmfys.unm.edu, in pub/quetzal.
  2674.  
  2675.   Benchmark of Syracuse University, via anonymous ftp on
  2676.                     minerva.npac.syr.edu, in /benchmark.
  2677.  
  2678.   Channel benchmark by John D. McCalpin, via anonymous ftp on
  2679.                     perelandra.cms.udel.edu, in bench/channel.
  2680.  
  2681. Examples and repositories
  2682. -------------------------
  2683.  
  2684.   Nag has set up a public repository for contributed code:
  2685.       WWW:  http://www.nag.co.uk:70/1h/nagware/Examples
  2686.  
  2687.   The Fortran Market has established itself on the World Wide Web.
  2688.   "ONE place to find all information, products, and services related
  2689.   to Fortran"
  2690.       WWW:  http://www.fortran.com/fortran/market.html
  2691.  
  2692.   Lahey Computer Systems is planning to set up an FTP'able site for F90
  2693.         modules - a kind of clearing house for public domain code.
  2694.         More info soon !
  2695.  
  2696.   11 000 lines offered by Richard Maine via anonymous ftp on
  2697.                           ftp.dfrf.nasa.gov (130.134.64.17),
  2698.                           file pub/fdas/f90sample/fdas.tar.Z
  2699.  
  2700.   STEJOI, statistical package for joint occurrence events, on Sun,
  2701.                           including source code and everything,
  2702.                           via anonymous ftp on ftp.ifremer.fr,
  2703.                           file pub/ifremer/fortran90/f90dvl.tar.Z.
  2704.  
  2705.   Module unsigned_32, for definition and use of unsigned 32 bits
  2706.                           integers, also on ftp.ifremer.fr,
  2707.                           file pub/ifremer/fortran90/unsi32.f90.Z.
  2708.  
  2709.   f90split, experimental version, similar to Unix BSD fsplit, but
  2710.                           for free source form, also on ftp.ifremer.fr,
  2711.                           file pub/ifremer/fortran90/f90split.f90.Z.
  2712.  
  2713.   Algorithm 999 by A.G. Buckley for unconstrained nonlinear
  2714.                           minimization, on ftp.royalroads.ca,
  2715.                           pub/software/bbuckley/alg999/source.
  2716.  
  2717. Courses and Consultancy
  2718. -----------------------
  2719.       IT Independent Training Limited, UK
  2720.  
  2721.       CTS, Germany
  2722.  
  2723.       Unicomp, USA
  2724.       Pacific-Sierra Research Corp., USA
  2725.  
  2726.  
  2727. 3.- Documentation:
  2728. ##################
  2729.  
  2730. Standards
  2731. ---------
  2732. ISO/IEC 1539:1991 (E)
  2733. International Standard
  2734. Information technology - Programming langages - Fortran
  2735. Somewhat expensive (CHF 210 ~ US$ 140 !) for instance, at ISO.
  2736. Surprisingly enough, the identical, save for foreword and
  2737. acknowledgements, ANSI standard X3.198-1992 is even more expensive.
  2738. Walter S. Brainerd, Unicomp., offers:
  2739. - for 125 US$, an electronic ascii monouser version,
  2740. - for 125 + 10n US$, an electronic PostScript version, and the right
  2741. to make n paper copies,
  2742. - or for 1000 US$, an electronic ditroff monouser version.
  2743.  
  2744.  
  2745. Journals
  2746. --------
  2747. Fortran Journal
  2748. ISSN 1060-0221
  2749. Enquiries: Walt Brainerd walt@fortran.com
  2750. Subscriptions: Fortran Users Group / P.O. Box 4201 / Fullerton, CA 92634
  2751.              (about $30/year individual, $100/year company,
  2752.               ~$50/$150 outside the USA, call 1 (714) 441 2022)
  2753.  
  2754. Fortran Forum
  2755. edited by Loren Meissner.
  2756.  
  2757.  
  2758. Tutorials and other documents
  2759. -----------------------------
  2760.  
  2761.    P. Corde and H. Delouis, "Support de cours Fortran 90 IDRIS".
  2762.    This is a very complete reference (224 pp.), in French, for
  2763. which the authors have agreed to give free access.
  2764.     ftp://ftp.ifremer.fr/pub/ifremer/fortran90/IDRIS_F90_cours_4.ps.gz
  2765.  
  2766.    Bo Einarsson and Yurij Shokin have written a tutorial on the
  2767. transition from Fortran 77 to Fortran 90, with the title "Fortran 90
  2768. for the Fortran 77 programmer"
  2769.     nsc.liu.se (130.236.100.5)  pub/bibliotek/f77to90.txt
  2770.  
  2771.    Michel Goossens has now installed a Fortran 90 tutorial on the
  2772.   World Wide Web (WWW) under the URL :
  2773.     http://asis01.cern.ch/CN/CNTUT/f90/Overview.html
  2774.   There is no copyright on this material.
  2775.  
  2776.   There is a Fortran (90) tutorial on the net that might be of some use
  2777.     ftp://ftp.cs.unm.edu/pub/smith_quetzal/Fortran90_Tutorial/
  2778.  
  2779.   See also:
  2780.     ftp://ftp.th-darmstadt.de/pub/thd/fortran/f90/
  2781.  
  2782.  
  2783. Books
  2784. ------
  2785.  
  2786.  * in English,
  2787.  
  2788. Adams, Brainerd, Martin, Smith.
  2789. Fortran Top 90 - Ninety Key Features of Fortran 90, Unicomp, Sept. 1994.
  2790.  
  2791. Adams, Brainerd, Martin, Smith, Wagener.
  2792. Fortran 90 Handbook, McGraw-Hill, 1992.
  2793. ISBN 0-07-000406-4
  2794.  
  2795. Brainerd, W., Goldberg, and Adams.
  2796. Programmer's guide to Fortran 90, 2nd edition, Unicomp, 1994.
  2797. ISBN 0-07-000248-7
  2798.  
  2799. Counihan.
  2800. Fortran 90, Pitman, 1991.
  2801. ISBN 0-273-03073-6
  2802.  
  2803. Ellis, T.M.R, Lahey, T. and Philips, I.
  2804. Fortran 90 Programming, Addison Wesley, 1994
  2805. ISBN 0-201-54446-6
  2806.  
  2807. Hahn, B.D.
  2808. Fortran 90 for Scientists and Engineers, Edward Arnold, 1994.
  2809. ISBN 0-340-60034-9
  2810.  
  2811. Kerrigan, J.
  2812. Migrating to Fortran 90, O'Reilly and Associates, 1993 (2nd ed. Sept.94)
  2813. ISBN 1-56592-049-X
  2814.  
  2815. Charles H. Koelbel, David B. Loveman, Robert S. Schreiber,
  2816. Guy L. Stelle Jr., Mary E. Zosel
  2817. High Performance Fortran Handbook, MIT Press, 349 pages, 1994.
  2818. ISBN 0-262-61094-9 $24.95 in paper back
  2819. ISBN 0-262-11185-3 $45 for hard cover
  2820.  
  2821. Metcalf, M. and Reid, J.
  2822. Fortran 90 Explained, Oxford University Press, 1992.
  2823. ISBN 0-19-853772-7
  2824.  
  2825. Morgan and Schonfelder,
  2826. Programming in Fortran 90, Alfred Waller Ltd., 1993.
  2827. ISBN 1-872474-06-3
  2828.  
  2829. Smith, I.M.
  2830. Programming in Fortran 90, Wiley
  2831. 0471-94185-9
  2832.  
  2833.  * in French,
  2834.  
  2835. ABERTI, C.
  2836. Fortran 90: Initiation a partir du Fortran 77, S.I. editions, 1992.
  2837. ISBN 2-909615-00-6
  2838.  
  2839. AIN, M.
  2840. Savez-vous parler Fortran, Bibliotheque des universites (de Boeck), 1994.
  2841. ISBN 2-8041-1755-3
  2842.  
  2843. DELANNOY, C.
  2844. Programmer en Fortran 90, Eyrolles, 1992.
  2845. ISBN 2-212-08723-3
  2846.  
  2847. DUBESSET, M. et VIGNES, J.
  2848. Les specificites du Fortran 90, editions Technip, 1993.
  2849. ISBN 2-7108-0652-5
  2850.  
  2851. LIGNELET, P.
  2852. Fortran 90: Approche par la Pratique, S.I. editions, 1993.
  2853. ISBN 2-909615-01-4
  2854.  
  2855. LIGNELET, P.
  2856. Manuel complet du langage Fortran 90, et guide d'application,
  2857. S.I. editions, Jan. 1995.
  2858. ISBN 2-909615-02-2
  2859.  
  2860. METCALF, M. et REID, J. (translated by M. Caillet and B. Pichon)
  2861. Fortran 90: Les concepts fondamentaux, AFNOR Editions, 1993.
  2862. ISBN 2-12-486513-7
  2863.  
  2864.  
  2865.  * in German,
  2866.  
  2867. Brainerd, W.S., Goldberg Ch.H., Adams J.C., translated by
  2868.       Peter Thomas and Klaus G. Paul
  2869. Fortran 90, Lehr- und Arbeitsbuch fuer das erfolgreiche Programmieren,
  2870. R. Olbenbourg Verlag, Muenchen, 1994,
  2871. ISBN 3-486-22102-7.
  2872.  
  2873. Gehrke.
  2874. Fortran 90 Referenz-Handbuch, Carl Hansen Verlag, 1991.
  2875. ISBN 3-446163-21-2
  2876.  
  2877. Heisterkamp.
  2878. Fortran 90: Eine Informelle Einfuehrung, BI-Wissenschaftsverlag, 1991.
  2879. ISBN 3-411153-21-0
  2880.  
  2881. Langer.
  2882. Programmieren in Fortran, Springer Verlag, 1993.
  2883. ISBN 0-387-82446-4
  2884.  
  2885. Schobert, Oldenburg.
  2886. Programmierung in Fortran 90, 1991.
  2887.  
  2888. Ueberhuber, C., Meditz, P.
  2889. Software-Entwicklung in Fortran 90, Springer Verlag, 1993.
  2890. ISBN 0-387-82450-2
  2891.  
  2892. Wojcieszynski, B, Wojcieszynski, R.
  2893. Fortran 90 Programmieren mit dem neuen Standard, Addison-Wesley, 1993.
  2894. ISBN 3-89319-600-5.
  2895.  
  2896.  
  2897.  * in Dutch,
  2898.  
  2899. Brainerd, W.S., Goldberg Ch.H., Adams J.C., transl. by J.M. den Haan
  2900. Fortran 90, Academic Service, 1991.
  2901. ISBN 90 6233 722 8.
  2902.  
  2903.  
  2904.  * in Russian,
  2905.  
  2906. Metcalf, Reid
  2907. Fortran 90 Explained
  2908.  
  2909.  * in Japanese
  2910.  
  2911. Metcalf, Reid (translated by H.Nisimura, H.Wada, K.Nishimura, M.Takata)
  2912. Fortran 90 Explained, Kyoritsu Shuppan Co., Ltd., 1993
  2913. ISSN 0385-6984.
  2914.  
  2915.  
  2916. Articles
  2917. --------
  2918. Appleby, D., FORTRAN First in a six-part series on languages that have
  2919. stood the test of time -- BYTE, Sep. 1991, 147-150
  2920.  
  2921. Bernheim, M., Fortran Mode d'emploi - Fortran 90 -- Intereditions (1991)
  2922. 163-176
  2923.  
  2924. Brankin, R.W., Gladwell, I., A Fortran 90 Version of RKSUITE: An ODE Initial
  2925. Value Solver, Annals of Numerical Mathematics, Vol 1, 1994, in press.
  2926.  
  2927. Buckley, Albert G., Conversion to Fortran 90: A Case Study -- accepted
  2928. (Sep. 93) for ACM TOMS (ftp.royalroads.ca:pub/software/bbuckley/alg999)
  2929.  
  2930. Buckley, Albert G., Algorithm 999: A Fortran 90 code for unconstrained
  2931. non linear minimisation -- accepted (Sep. 93) for ACM TOMS
  2932.  
  2933. Chesneaux, J.M., Description d'utilisation du logiciel CADNA_F --
  2934. MASI 92.32 (1992) Institut Blaise Pascal, Paris
  2935.  
  2936. Corde, P., Girou, D., Fortran 90: la nouvelle norme -- Tribunix
  2937. Dossiers calculateurs, Vol 8. No. 41 (1992) 12-17
  2938.  
  2939. Du Croz, Jeremy J., Building Libraries with Fortran 90
  2940. Fortran Journal 4/5, Sep./Oct 1992
  2941.  
  2942. Glassy, L., Tiny-Ninety: A subset of F90 for beginning programmers --
  2943. Fortran Journal 4/3, May/Jun. 1992, 2-6
  2944.  
  2945. Hanson, R.J., A design of high-performance Fortran 90 Libraries --
  2946. IMSL technical report series No. 9201 (1992)
  2947.  
  2948. Hanson, R.J., Matrix multiplication in Fortran 90 using Strassen's
  2949. algorithm -- Fortran Journal 4/3, May/Jun. 1992, 6-7
  2950.  
  2951. Iles, Robert, Fortran 90: The First Two Years -- Unicom Seminar on
  2952. Fortran and C in Scientific Computing, 1993.
  2953.  
  2954. Iles, R., Palant, L., Fortran 90: 2 ans deja -- Tribunix No. 49
  2955. Mai/Juin 1993, 32-37.
  2956.  
  2957. Lahey, T., Fortran 90 is coming ! -- Programmer's Journal, Mar/Apr 1991.
  2958.  
  2959. Lignelet, P., Fortran -- Les Techniques de l'ingenieur, H2120, Dec 1993.
  2960.  
  2961. Maine, R., Review of NAG Fortran 90 translator -- Fortran Journal 3/6,
  2962. Nov/dec 1991.
  2963.  
  2964. Metcalf, M., Recent progress in Fortran standardization -- Computer
  2965. Physics Communications 57 (1989) 78-83.
  2966.  
  2967. Metcalf, M., Fortran 90 - A summary -- Int. Journal of modern Physics C,
  2968. Vol. 1, Nos. 2&3 (1990) 193-206.
  2969.  
  2970. Metcalf, M., A derived data type for data analysis -- Computers in
  2971. Physics, Nov/Dec 1991, 599-604.
  2972.  
  2973. Metcalf, M., A first encounter with Fortran 90 -- Fortran Journal 4/1,
  2974. Jan/Feb 1992, 2-7.
  2975.  
  2976. Metcalf, M., An encounter with F90 -- Particle World 3/3 (1993),
  2977. 130-134.
  2978.  
  2979. Metcalf, M., Fortran 90 Tutorial -- CERN Computer Newsletter,
  2980. Nos. 206/207/208/209/210/211 (1992-1993).
  2981.  
  2982. Metcalf, M., Using the f90 compiler as a software tool -- CERN Computer
  2983. Newsletter, No. 209 (1992).
  2984.  
  2985. Metcalf, M., Still programming after these years -- New Scientist,
  2986. (12 Sep. 1992), 30-33
  2987.  
  2988. Olagnon, M., Experience with NagWare f90 -- Fortran Journal 4/6,
  2989. Nov/dec 1992, 2-5.
  2990.  
  2991. de Polignac, Christian, Du Fortran VAX au Fortran 90 -- Decus, Paris,
  2992. 7 Avril 1993.
  2993.  
  2994. Prentice, John K., Fortran 90 benchmark results -- Fortran Journal 5/3,
  2995. May/June 1993.
  2996.  
  2997. Reid, John, The Fortran 90 Standard -- Programming environments for high
  2998. level scientific problem solving, Gaffney ed., IEEE Trans.,
  2999. North-Holland (1992), 343-348.
  3000.  
  3001. Reid, John, Fortran 90, the language for scientific computing in the
  3002. 1990s --Unicom Seminar on Fortran and C in Scientific Computing, 1992
  3003.  
  3004. Reid, John, The advantages of Fortran 90 -- Computing 48, 219-238.
  3005.  
  3006. de Roeck, Yann-Herve, Plessix, Rene-Edouard, Combining F90 and PVM to
  3007. construct synthetic seismograms by ray-tracing -- proc. IEEE Oceans 94.
  3008.  
  3009. Robin, F., Fortran 90 et High Performance Fortran, Bulletin technique
  3010. CEA, Oct. 1992, 3-7.
  3011.  
  3012. Sawyer, M., A summary of Fortran 90 -- EPCC-TN92-04, Univ. of Edinburgh,
  3013. (1992).
  3014.  
  3015. Schonfelder, J.L., Semantic extension possibilities in the proposed
  3016. new Fortran -- Software practice and experience, Vol.19, (1989),
  3017. 529-551.
  3018.  
  3019. Schonfelder, J.L., Morgan, J.S., Dynamic strings in Fortran 90 --
  3020. Software practice and experience, Vol.20(12), (1990), 1259-1271.
  3021.  
  3022. Scott, Kilpatrick and Maley
  3023. The formal specification of abstract data types and their implementation
  3024. in Fortran 90
  3025. Computer Physics Communications 84 (1994) 201-225.
  3026.  
  3027. Sipelstein, J.M., Blelloch, G.E., Collection-oriented languages --
  3028. Proceedings of the IEEE, Vol. 79, No. 4, (1991), 504-530.
  3029.  
  3030. Vignes, Jean, Vers un calcul scientifique fiable : l'arithmetique
  3031. stochastique -- La Vie des Sciences, Comptes rendus, serie generale,
  3032. tome 10, 1993, No 2, 81-101.
  3033.  
  3034. Vignes, Jean, A stochastic arithmetic for reliable scientific computation
  3035. MATCOM 940 - Mathematics and Computers in Simulation 35 (1993) 233-261.
  3036.  
  3037. Walker, D.W., A Fortran 90 code for magnetohydrodynamics. Part I:
  3038. banded convolution -- Oak Ridge National Lab. report TM-12032 (1992).
  3039.  
  3040. Walter, W., Fortran 90: Was bringt der neue Fortran-Standard fuer das
  3041. numerische Programmieren ? -- Jahrbuch Ueberblicke Mathematik Vieweg,
  3042. (1991) 151-174.
  3043.  
  3044. Wampler, K. Dean, The Object-Oriented programming Paradigm and Fortran
  3045. programs -- Computers in Physics, Jul/Aug 1990, 385-394.
  3046.  
  3047. Willhoft, Robert G., Comparison of the functional Power of APL2 and
  3048. Fortran 90 -- APL Quote Quad, 1991
  3049.  
  3050. Other places for help on Fortran 90
  3051. -----------------------------------
  3052.  
  3053. http://asis01.cern.ch/CN/CNTUT/f90/Overview.html
  3054.       Fortran 90 Tutorials
  3055. http://www.fortran.com/fortran/u_gd.html
  3056.       Programmer's Guide to Fortran 90
  3057. http://www.fortran.com/fortran/market.html
  3058.       Fortran Market
  3059. http://www.cis.ohio-state.edu/hypertext/faq/usenet/fortran-faq/faq.html
  3060.       Fortran FAQ
  3061. ftp://ftp.cs.unm.edu/pub/smith-quetzal/Fortran90_Tutorial/
  3062.       FTP-able fortran90 Tutorial from ftp.cs.unm.edu
  3063. http://www.fortran.com/fortran/free.html
  3064.       Free Software
  3065. http://www.fortran.com/fortran/u_iso1539.html
  3066.       How to get Fortran 90 Standard documentation
  3067. http://cui_www.unige.ch/OSG/Langlist/Free/free-toc.html
  3068.       Free Compilers/tools List- At Cern
  3069. http://www.cs.indiana.edu/inds/proglang.html
  3070.       Programming Languages research - At Indiana University
  3071. http://www.cs.cmu.edu:8001/Web/computing.html
  3072.       Other languages - At CMU.
  3073.  
  3074. 4.- Fortran 90 Benchmarking
  3075. ###########################
  3076.  
  3077.   An interesting article by John K. Prentice appeared in the
  3078. May/June 93 issue of Fortran Journal.
  3079. He also gave a more complete one in HPNews July/August 93.
  3080.  
  3081.   I made some tests myself with LAPACK, and got a ratio of 10
  3082. between Sun f77 and Nag f90 2.0 when no source change was performed.
  3083. With an aggressive rewriting, especially using array instructions
  3084. and intrinsics, the ratio gets down to 2, which is also that of a
  3085. f77 [sd]axpy to a C one.
  3086.  
  3087.   On actual applications, this ratio seems to be much closer to 1,
  3088. and even sometimes in favor of Fortran 90. On Sept. 7th, 1993, John
  3089. wrote "I think there is in fact beginning to be a quite large body of
  3090. evidence to suggest that most of the efficiency fears about F90 are
  3091. unfounded."
  3092.  
  3093.   For Nag f90 on workstations, the effect of the underlying C
  3094. compiler (gcc, vendor, etc...) seems very limited (less than 4%).
  3095.  
  3096.   With more recent F90 compilers, performance seems at least as good
  3097. and often better than with the corresponding F77 compiler, for old
  3098. F77 code. For instance, Lahey reports improvement from 8.5 to 14.1
  3099. Mflops with linpack on a pentium between EM/32 and their F90 compiler.
  3100.  
  3101. 5.- Announced, foreseen, and rumours
  3102. ####################################
  3103.  
  3104.   Apogee compiler
  3105.   DEC Fortran 90 for OpenVMS AXP (Beta test last quarter 94)
  3106.   Sun full compiler (no official date)
  3107.   KAP pre-processor (IBM F90 late 09/94, SPARC F90 beta as of 09/94,
  3108.         SGI F90 ist quarter 95)
  3109.   MicroSoft after next release of present PowerStationFortran
  3110.   Lahey LF90 for Windows (1995)
  3111.   Numerical recipies is in the process of being translated
  3112.  
  3113. 6.- Workshops, seminars, conferences
  3114. ####################################
  3115.  
  3116.    2nd Monaco Fortran 90 Forum - 13-14 April 1995
  3117.    (S.I. editions)
  3118.  
  3119.    NAG Users Association conference 95 - Bonn (Germany)
  3120.    13-15 September 1995 - submitt abstracts to the Nagua committee
  3121.    nagua-comm@ukc.ac.uk
  3122.  
  3123. 7.- Developments, related languages
  3124. ###################################
  3125.  
  3126. Standard
  3127. --------
  3128.   Work did not stop with the publication of the Fortran 90 standard.
  3129. A new release is scheduled for 1996 (called 95), mainly devoted to
  3130. clarifications, corrections and interpretations. A more important
  3131. revision is scheduled for 2000 (or 2001 ? called F2k though C.Burley's
  3132. F00 is a pleasant alternative).
  3133.   Documents related to the work of X3J3 can be found via anonymous
  3134. ftp on ftp.ncsa.uiuc.edu, directory x3j3.
  3135.  
  3136. HPF
  3137. ---
  3138.   High Performance Fortran (HPF) is a language for programming
  3139. massively parallel architectures. It lets the user insert directives
  3140. for code and data distribution among the processors in the
  3141. (Fortran 90) code.
  3142. Electronic copies of HPF draft specification are available by anonymous
  3143. FTP from the following sources:
  3144.  Machine name            File name
  3145.  titan.cs.rice.edu       public/HPFF/draft/hpf-v10-final.tar
  3146.  titan.cs.rice.edu       public/HPFF/draft/hpf-v10-final.tar.Z
  3147.  titan.cs.rice.edu       public/HPFF/draft/hpf-v10-final.ps
  3148.  titan.cs.rice.edu       public/HPFF/draft/hpf-v10-final.ps.Z
  3149.  think.com               public/HPFF/hpf-v10-final.ps.Z
  3150.  ftp.gmd.de              hpf-europe/hpf-v10-final.ps.Z
  3151.  theory.tc.cornell.edu   pub/hpf-v10-final.ps.Z
  3152.  minerva.npac.syr.edu    public/hpf-v10-final.tar.Z
  3153.  
  3154. PVM
  3155. ---
  3156.   Parallel Virtual Machine consists of a library and a run-time
  3157. environment which allow the distribution of a program over a network
  3158. of (even heterogeneous) computers. It works with Fortran 77,
  3159. C and to some extent Fortran 90. One can refer to the article
  3160. by Y-H de Roeck and R-E Plessix, and a set of example wrapper
  3161. routines for the PVM calls is available as
  3162. ftp://ftp.ifremer.fr/pub/ifremer/fortran90/pvm2f90.tar.gz.
  3163.  
  3164.   There is a usenet comp.parallel.pvm group, and the FAQ for it
  3165. can be found via anonymous ftp on rtfm.mit.edu, /pub/usenet.
  3166.  
  3167. Parallel Programming
  3168. --------------------
  3169.   An interesting report can be obtained via anonymous ftp on
  3170. bulldog.wes.army.mil:/pub/report.ps.Z, for a large review of
  3171. products related to parallel systems programming.
  3172.  
  3173.  
  3174. 8.- Addresses
  3175. #############
  3176.  
  3177. AERO, Mr. Berthon, 3 av. de l'opera. F-75001 Paris, France
  3178.    tel: +33 1 44 55 30 80, fax: +33 1 40 15 95 54
  3179.  
  3180. AFNOR, Tour Europe, Cedex 7, F-92049 Paris la Defense, France
  3181.    tel: +33 1 42 91 55 55
  3182.  
  3183. Apogee Software Inc., 1901 S.Bascom Ave., Suite 325, Campbell,
  3184.    CA 95008-2207, USA
  3185.    tel: (408) 369-9001, fax: (408) 369-9018, info@apogee.com
  3186.  
  3187. Applied Parallel Research, Inc., 550 Main St., Placerville, CA 95667
  3188.    tel: (916) 621-1600, fax: (916) 621-0593, forge@netcom.com
  3189.    ftp://ftp.netcom.com/pub/forge/home.html
  3190.  
  3191. CRAY
  3192.    http://www.cray.com/, craysoft@cray.com
  3193.  
  3194. CTS, Prinz-Otto Str. 7c, D-85521 Ottobrunn, Germany
  3195.    tel: +49 89 6083758, fax: +49 89 6083758
  3196.  
  3197. DEC
  3198.    http://www.digital.com/info.html, info@digital.com
  3199.  
  3200. EPC, 17 Alva St, Edinburgh, EH2 4PH, United Kingdom
  3201.    tel: +44-31-225-6262, fax: +44-31-225-6644, support@epc.ed.ac.uk
  3202. EPC, 20 Victor Square, Scotts Valley, California 95066
  3203.    tel: (408) 438-1851, fax: (408) 438-3510, info@epc.com
  3204.  
  3205. Fortran Journal, P.O. Box 4201, Fullerton, CA 92634, USA
  3206.    fax: (714) 441-2022
  3207.  
  3208. Fujitsu Open Systems Solutions, Inc., 3055 Orchard Drive, San Jose,
  3209.    CA 95134 USA
  3210.    tel: (408) 456-7809, fax: (408) 456-7050, info@ossi.com
  3211.  
  3212. ICHOR, 27 rue Linne, F-75005 Paris, France
  3213.    tel: +33 1 43 37 02 02
  3214.  
  3215. IDRIS, B.P. 167, F-91403 Orsay Cedex, France
  3216.  
  3217. ISO, 1 rue de Varembe, Case postale 56, CH-1211 Geneve 20, Switzerland
  3218.    fax: +41 22 734 10 79
  3219.  
  3220. IT Independent Training Limited, 113 Liscombe, Birch Hill, Bracknell,
  3221.    Berkshire, RG12 7DE, UK
  3222.    tel: +44 344 860172, fax: +44 344 867992
  3223.  
  3224. KAI (Kuck & Associates),
  3225.    tel: (217) 356-2288, fax: (217) 356-5199, katy@kai.com
  3226.  
  3227. Lahey Computer Systems, Inc., 865 Tahoe Blvd., P.O. Box 6091,
  3228.    Incline Village, NV 89450, USA
  3229.    tel: (702) 831-2500, fax: (702) 831-8123, sales@lahey.com
  3230.  
  3231. Microway, Research Park, Box 79, Kingston, MA 02364, USA
  3232.    tel: (508) 746-7341, fax: (508) 746-4678
  3233.  
  3234. NA Software Ltd, Roscoe House, 62 Roscoe St., Liverpool L1 9DW, UK
  3235.    tel: +44 51 7094738, fax: +44 51 7095645, f90doc@nasoftwr.demon.co.uk
  3236.  
  3237. NAG Ltd., Wilkinson House, Jordan Hill Road, Oxford, OX2 8DR, UK
  3238.    tel: +44 865 311744, fax: +44 865 311755, infodesk@nag.co.uk
  3239.    http://www.nag.co.uk:70/intro
  3240. NAG Inc., 1400 Opus Place, Suite 200, Downers Grove, IL 60515-5702, USA
  3241.    tel: (708) 971-2345, fax: (708) 971-2346, infodesk@nag.com
  3242. NAG GmbH., Schleissheimerstr. 5, D-85748 Garching, Germany
  3243.    tel: +49 89 3207395, fax: +49 89 3207396
  3244. NAG Office, Espace III, 62 Boulevard Frederic Arnaud, 09200 Saint Girons
  3245.    (Toulouse, France)
  3246.  
  3247. NAG Users Association, PO Box 426, Oxford, OX2 8SD, UK
  3248.    tel: +44 865 311102, fax: +44 865 310139, nagua@nag.co.uk
  3249.  
  3250. Pacific-Sierra Research Corp., 2901 28th Street, Santa Monica, CA 90405
  3251.    tel: (310) 314-2300, fax: (310) 314-2323, info@psrv.com
  3252.  
  3253. ParaSoft Corporation, 2500 E. Foothill Blvd, Pasadena, CA 91107, USA
  3254.    tel: (818) 792-9941, f90-info@parasoft.com
  3255.  
  3256. PGI,
  3257.    sales@pgroup.com
  3258.  
  3259. Quetzal Computational Associates, 3200 Carlisle N.E., Albuquerque,
  3260.    NM 87110-1664, USA
  3261.    tel: (505) 889-4543, fax: (505) 889-4598, quetzal@aip.org
  3262.  
  3263. Salford Software, Adelphi House, Adelphi Street, Salford M3 6EN, UK
  3264.    tel: +44 61 8342148, fax: +44 61 8342454
  3265.  
  3266. S.I. editions, 9 av. Prince Hereditaire Albert, MC-98000, Monaco
  3267.    tel: +33 92 05 35 51, fax: +33 92 05 35 04
  3268.  
  3269. Simulog, 1 rue James Joule, F-78286 Guyancourt Cedex, France
  3270.    (Mr. E. Plestan)
  3271.    tel: +33 1 30 12 27 00, fax: +33 1 30 12 27 27
  3272.  
  3273. Spackman & Hendrickson, Inc., 13708 Krestwood Drive, Burnsville,
  3274.    MN 55337,  USA
  3275.    tel: (612) 892-5847, fax: (612) 892-5844
  3276.  
  3277. Unicom Seminars Ltd., Brunel Science Park, Cleveland Road, Uxbridge,
  3278.    Middlesex, UB8 3PH, UK
  3279.    tel: +44 895 256484, fax: +44 895 813095
  3280.  
  3281. Unicomp, Inc., 1874 San Bernardino Ave NE, Albuquerque, NM 87122, USA
  3282.    tel: (505) 275-0800, fax: (505) 856-1501, walt@fortran.com
  3283.  
  3284. I am always pleased to receive informations.
  3285. Thanks to all those who sent some to me, and that I can not cite
  3286. all because I lost some of their names and addresses :-)
  3287.  
  3288. Q37) Fortran Market
  3289.  
  3290. ~Subject: (SC22WG5.609) Fortran Market/WWW
  3291.  
  3292. I hope all of you will be pleased to learn that
  3293. the Fortran Market has established itself on the
  3294. World Wide Web.  Our goal is nothing short of
  3295. providing one place to find all information,
  3296. products, and services related to Fortran.  The
  3297. URL is:
  3298.  
  3299.    http://www.fortran.com/fortran/market.html
  3300.  
  3301. The Market is under construction (and probably
  3302. always will be), but there is already some free
  3303. software available (just some simple, but perhaps
  3304. useful, things so far).  There are pointers to
  3305. other locations containing relevant information,
  3306. so you now need to remember only one place to
  3307. find it all.  Much more information, particularly
  3308. about products and servies will be available in
  3309. the near future, but I thought you might want to
  3310. have a Sneak Preview of what things will look like.
  3311.  
  3312. Come visit the Market and let me know what you
  3313. think of it.  Thanks.
  3314. -- 
  3315. ----------------------------------------------------------------
  3316. Keith H. Bierman    keith.bierman@Sun.COM| khb@chiba.Eng.Sun.COM
  3317. SunSoft Developer Products         |
  3318.  2550 Garcia MTV 12-40                 | (415 336 2648) fax 964 0946
  3319. Mountain View, CA 94043  <speaking for myself, not Sun*> Copyright 1995
  3320.